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

231

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

267

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

Para contornar o alias, use o comando interno command :

$ command python --version
Python 2.7.6

Outra maneira de contornar o alias é usar \ antes do comando.

$ \python --version 
Python 2.7.6

Para desabilitar o alias no shell atual, use o comando interno unalias :

$ unalias python
$ python --version
Python 2.7.6
    
por Radu Rădeanu 17.07.2013 / 10:13
68

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

Do wiki do Ubuntu :

% bl0ck_qu0te%

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 carregados pelo menos uma vez, são principalmente para fins organizacionais, mas podem variar por plataforma). Os ambientes virtuais do Python também funcionam bem.

Exemplos de alias:

alias python=python3

ou

alias python='/usr/bin/python3'

Os scripts ainda devem usar algo como #!/usr/bin/env python3 para compatibilidade cruzada.

Usar env é bom para uso misto com ambientes virtuais.

Nota (graças a @wjandrea): aliases fazem parte do tempo de execução do bash, não do ambiente do usuário. Portanto, eles não estão disponíveis para o shebang ( #! ). Se você preferir o alias python = python3, algum program.py sem um shebang poderia ser executado invocando o intérprete com alias como este python program.py . O aliasing também pode ser útil para sistemas com várias versões do python3, como 3.4 e 3.6 juntos.

    
por Kevin 02.06.2014 / 18:31
8

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
3

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
-1

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