Como fazer o comando do programa 'python' executar o Python 3?

197

O comando python program executa o Python 2. O Python 3 pode ser executado usando o comando python3 . Como o Python 3 pode ser executado usando o comando python ?

    
por Giri 17.07.2013 / 10:04

8 respostas

230

Uma maneira simples e segura seria usar um alias. Coloque isso em ~/.bashrc ou ~/.bash_aliases file:

alias python=python3

Depois de adicionar o acima no arquivo, execute o comando abaixo:

source ~/.bash_aliases or source ~/.bashrc

Por exemplo:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3
    
por Radu Rădeanu 17.07.2013 / 10:13
64

[junho de 2016] O local recomendado para informações sobre a transição é a página oficial do Ubuntu Python .

Do wiki do Ubuntu :

  

Para o Ubuntu e o Debian, temos projeto em andamento gramas para tornar o Python 3 a versão padrão preferida do Python nas distros.

     

O que isso não significa significa:

     
  • /usr/bin/python apontará para o Python 3. Não, isso não vai acontecer (a menos que PEP 394 defende o contrário, o que é duvidoso para o futuro previsível). /usr/bin/python e /usr/bin/python2 apontarão para o Python 2.7 e /usr/bin/python3 apontará para a última versão suportada do Python 3.

  •   
  • O Python 2 será removido do arquivo. Não, isso não vai acontecer . Esperamos que o Python 2.7 permaneça com suporte e esteja disponível no Ubuntu por um bom tempo, dado que PEP 373 promete suporte de manutenção de correções de erros upstream até 2020.

  •   

Não é recomendado alterar o link simbólico devido a outras dependências de pacote, mas eles "têm metas de projeto em andamento para tornar o Python 3 a versão preferida do Python nas distros".

Para uso do CLI, como @Radu Rădeanu , eu recomendaria colocar um alias no usuário ~/.bashrc , .bash_aliases file (os arquivos diferentes, incluindo ~/.bash_profile , são todos carregados juntos e são apenas para fins organizacionais). Os ambientes virtuais do Python também funcionam bem.

Como:

alias python=python3

ou

alias python='/usr/bin/python3'

Os scripts podem começar com algo como:

#!/usr/bin/env python

em vez de

#!/usr/bin/python3

Eu ainda recomendaria usar #!/usr/bin/python3 (ou #!/usr/bin/env python3 ) em scripts para compatibilidade cruzada mais simples.

Usar env é bom para uso misto com ambientes virtuais.

    
por Kevin 02.06.2014 / 18:31
7

Update: Este é o caminho errado, eu aprendi, já que Python2 e Python3 não são intercambiáveis.

Você pode tentar a ferramenta de linha de comando update-alternatives .

$ sudo update-alternatives --config python

Se você receber o erro "sem alternativas para python", configure uma alternativa com o seguinte comando:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Altere o caminho /usr/bin/python3 para sua versão do Python desejada.

    
por webwurst 04.05.2014 / 16:03
2

O Ubuntu, e o resto das distribuições Linux, ainda dependem muito do Python 2.7 para vários aplicativos e comandos. Se você alterar a referência padrão de "python" para o Python 3.x, algumas funções do Python começarão a gerar erros de asserção.

Por exemplo, no Ubuntu, o 'pip' para um não seria mais executado corretamente, a menos que você editasse o arquivo diretamente e alterasse o shebang para fazer referência a '#! / usr / bin / env python2.7'. Nos sabores do RHEL (Red Hat Enterprise Linux), como Red Hat, Fedora e CentOS, o comando 'Yum' também depende do Python 2.7.

Meu ponto aqui é que você faria com que uma quantidade significativa de código começasse a lançar erros de asserção apenas para que você pudesse digitar 'python' no terminal para fazer referência ao Python 3.x.

Você está muito melhor usando o comando 'python3' no terminal e o shebang '#! / usr / bin / env python3' nos arquivos do Python 3.x.

    
por Moony 25.03.2016 / 16:43
1

Faça

cd ~
gedit .bash_aliases

escreva

alias python=python3

ou

alias python='/usr/bin/python3'

Salve o arquivo, feche o terminal e abra-o novamente. Link

    
por Breeze 15.09.2017 / 20:36
0

Você pode usar update-alternatives para fornecer diferentes versões de programas que podem ser necessários em momentos diferentes devido a problemas de compatibilidade.

Esta resposta É um bom exemplo de como configurar as coisas para manutenção simultânea diferentes versões do gcc / g ++, por exemplo.

apenas faça o mesmo com python2.7 e python 3.3

    
por dcanelhas 18.10.2013 / 15:19
0
cat > /usr/local/bin/py
#!/usr/bin/dash
python3 "$@"
<CTRL-D>

(desde que você tenha permissão de gravação para / usr / local / bin) da mesma forma

cat > /usr/local/bin/pyi
#!/usr/bin/dash
python3 -i "$@"
<CTRL-D>

então você só digita py (e usa py em #! linhas) para o seu python escolhido.

    
por John Allsup 15.01.2016 / 23:57
0

Você pode vincular /usr/bin/python a python3 com

sudo ln -s /usr/bin/python3 /usr/bin/python

Veja as outras respostas para saber por que você não deseja fazer isso. O Ubuntu 18.04 não vem mais com o Python 2, então não deve ser tão ruim.

    
por boris 03.05.2018 / 23:01