Eu tenho duas versões do python no meu linuxbox:
$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct 8 2013, 15:53:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python
Como faço para que o 2.7 seja a versão padrão e, quando digito, python
ele me coloca no 2.7?
/usr/bin/env python
para 2.6, em vez de 2.3, significava metade dos comandosrpm
e todosurpmi
pararam de funcionar)./usr/bin/python
era um link suave apontando parapython2
. Eu apenas mudei parapython3.6
Respostas:
Você provavelmente não deseja alterar seu Python padrão.
Sua distribuição instalou um sistema padrão no Python
/usr/bin
e pode ter scripts que dependem disso, sendo selecionados por#! /usr/bin/env python
. Geralmente, você pode se safar da execução de scripts Python 2.6 na 2.7, mas deseja arriscar?Além disso, o manuseio
/usr/bin
pode prejudicar a capacidade do gerente de pacotes de gerenciar pacotes. E alterar a ordem dos diretórios no seu diretórioPATH
afetará muitas outras coisas além do Python. (De fato, é mais comum ter/usr/local/bin
à frente/usr/bin
, e pode ser o que você realmente deseja - mas se você tiver o contrário, provavelmente há uma boa razão para isso.)Mas você não precisa alterar o Python padrão para que o sistema execute 2.7 quando você digita
python
.Primeiro, você pode configurar um alias de shell:
Digite isso em um prompt ou coloque-o no seu
~/.bashrc
se quiser que a alteração seja persistente e agora, quando você digitapython
, executa o 2.7 escolhido, mas quando algum programa em seu sistema tenta executar um script com/usr/bin/env python
o padrão 2.6.Como alternativa, basta criar um ambiente virtual a partir do seu 2.7 (ou venvs separados para diferentes projetos) e fazer seu trabalho dentro do venv.
fonte
yum
comando não funciona! Tentei criar o link sym de volta, mas ele não funciona emsudo ln -sf /usr/bin/python2.6 /usr/bin/python
nenhuma solução alternativa?/usr/bin/python
na verdade não era um link simbólico antes, era um script de wrapper ou executável, e agora você o substituiu e não pode recuperá-lo. Serpm
ainda estiver funcionando, você pode baixar manualmente o pacote Python e instalá-lo semyum
.python2.6
para que ele ainda esteja lá.Adicione
/usr/local/bin
à suaPATH
variável de ambiente, anteriormente na lista que/usr/bin
.Geralmente isso é feito no arquivo rc do seu shell, por exemplo, para o bash, você coloca isso em
.bashrc
:Isso fará com que o seu shell procure primeiro um
python
in/usr/local/bin
, antes de ir com o in/usr/bin
.(Obviamente, isso significa que você também precisa
/usr/local/bin/python
apontarpython2.7
- se ainda não o tiver, precisará vincular novamente).fonte
Digite o comando
Aqui você pode ver algo como isto
seu python2.7 padrão está vinculado ao texto 'python'
Portanto, remova o python softlink
tente novamente o comando acima
você pode ver que o softlink foi removido
Em seguida, crie um novo softlink para python3.6
ln -s /usr/bin/python3.6 python
Em seguida, tente o comando
python
no terminalDigite
help
,copyright
,credits
oulicense
para mais informações.fonte
Verifique a versão atual do python:
então verifique python é o link simbólico para qual arquivo.
Saída Ex:
Verifique outras versões disponíveis do python:
Saída Ex:
Se quiser alterar a versão atual do python para a versão 3.6, edite o arquivo ~ / .bashrc:
adicione a linha abaixo no final do arquivo e salve:
Para instalar o pip para python 3.6
Em Sucesso, verifique a versão atual do pip:
Saída Ex:
fonte
Todo o sistema operacional vem com uma versão padrão do python e reside em / usr / bin. Todos os scripts que acompanham o sistema operacional (por exemplo, yum) apontam para esta versão do python que reside em / usr / bin. Quando você deseja instalar uma nova versão do python, não deseja interromper os scripts existentes que podem não funcionar com a nova versão do python.
A maneira correta de fazer isso é instalar o python como uma versão alternativa.
Agora, fazendo isso, os scripts existentes como o yum ainda funcionam com / usr / bin / python. e sua versão python padrão seria a instalada em / usr / local / bin. ou seja, quando você digita python, você obtém 2.7.3
Isso acontece porque. A variável $ PATH possui / usr / local / bin antes de usr / bin.
Se o python2.7 ainda não tiver efeito como a versão padrão do python, você precisará fazer
fonte
Eu acho que você instalou a versão 2.7 manualmente, enquanto 2.6 vem de um pacote?
A resposta simples é: desinstalar o pacote python.
O mais complexo é: não instale manualmente em / usr / local. Crie um pacote com a versão 2.7 e depois atualize.
O manuseio de pacotes depende da distribuição usada.
fonte