Não foi possível definir a versão padrão do python como python3 no ubuntu

146

Eu estava tentando definir a versão python padrão como python3in Ubuntu 16.04. Por padrão, é python2(2.7). Segui as etapas abaixo:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

mas estou recebendo o seguinte erro para a segunda instrução,

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

Eu sou novo no Ubuntu e não sei o que estou fazendo de errado.

RejeeshChandran
fonte
3
Conforme indicado no aviso, você está perdendo a prioridade.
precisa saber é o seguinte
6
Tome cuidado para não remover Python 2.7, uma vez que irá inviabilizar muitas instalações de você OS (por experiência :()
Jacques de Hooge
Fiz uma edição da minha resposta em relação ao seu erro de prioridade.
Steampunkery
1
Uma palavra de aviso: Parece-me uma péssima idéia mudar pythonpara o Python 3. A maneira padrão de chamar scripts escritos no Python 2 é python my-script-p2.py, enquanto está python3 my-script-p3.py. Eu esperaria que muitos scripts do sistema confiassem nisso.
Jan Groth
1
Para aqueles que estão interessados ​​no tópico, recomendo prestar atenção ao ambiente virtual: docs.python.org/3/tutorial/venv.html Meu Ubuntu 18 LTS ainda usa Python 2.7 e, por exemplo, uso o ambiente virtual para uso do Python 3.X e esteja atualizado nos meus projetos do Django.
Victor Bjorn

Respostas:

136

Abra o seu arquivo .bashrc nano ~/.bashrc. Digite alias python=python3uma nova linha na parte superior do arquivo e salve o arquivo com ctrl + o e feche o arquivo com ctrl + x. Em seguida, volte ao seu tipo de linha de comando source ~/.bashrc. Agora seu alias deve ser permanente.

EDITAR:

Para alternativas de atualização, a prioridade é um número inteiro. A prioridade representa qual programa deve ser o primeiro usado. Este artigo resume tudo muito bem.

Steampunkery
fonte
60
Esta é a resposta errada. A edição do bashrc não faz o mesmo que as alternativas de atualização. Por exemplo, scripts que começam com #!/usr/bin/env pythonnão usarão a versão no bashrc. Por favor, use a resposta de @ Pardhu.
stonewareslord
Escrevi esta resposta há muito tempo e sei que as alternativas de atualização não são a mesma coisa que mudar o bashrc. Posso editar a resposta, se desejar.
Steampunkery
1
É mais um aviso aos usuários com essa pergunta: alterar o alias não faz a mesma coisa. Você decide se deseja editar.
Stonewareslord
Esta é a única resposta que me ajudou. Eu tentei fazer sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2. But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
alexchenco 10/01
1
Eu fiz isso e isso quebrou coisas, como virtualenvs. Esta resposta está criando mais problemas
Kuzeko 19/07/19
295

A segunda linha mencionada pode ser alterada para

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

Isso dá uma prioridade de 10 para o caminho de python3. A desvantagem da edição do .bashrcarquivo é que ele não funcionará enquanto estiver usando os comandos sudo.

Atualização: use sudoao executar o comando desta maneira:

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

Pardhu
fonte
3
Boa e fácil saída.
PrakashG 11/01/19
7
Bom e direto ao ponto. "<priority>" na mensagem de erro já o sugeriu. BTW, "sudo" é normalmente necessário para executar este comando de instalação.
ywu 7/05/19
4
Como o ywu disse, eu tive que executar "sudo update-alternative --install / usr / bin / python python / usr / bin / python3 10"
Roy
3
Essa é a maneira certa de fazer isso com certeza, mas vale a pena notar que a alteração do padrão em todo o sistema provavelmente quebrará algumas coisas. Por exemplo, eu tive que aplicar uma correção no terminador , que só funciona com python2.
Dale Anderson
1
Não funciona completamente - após esse comando pythoné executado python3, mas python-configainda corre python2-confige ensues gerais de quebra
Chris Dodd
36

Para alterar o Python 3.6.8 como padrão no Ubuntu 18.04 para Python 3.7.

Instale o Python 3.7

Etapas para instalar o Python3.7 e configurá-lo como intérprete padrão.

  1. Instale o pacote python3.7 usando o apt-get

    sudo apt-get install python3.7

  2. Adicione Python3.6 e Python 3.7 a update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. Atualize o Python 3 para apontar para Python 3.7

    sudo update-alternatives --config python3 Digite 2 para Python 3.7

  2. Teste a versão do python

python3 --v
Python 3.7.1 
Purushottam Prabhakar
fonte
3
Você pode incluir um aviso de que isso pode interromper o software empacotado. Python 3.6 é o padrão distribuído e quaisquer pacotes de software incluídos também assumirão esta versão.
Tim
Isso me ajudou. Obrigado.
jeffry COPPS
Posso substituir o python para a versão 3.7 em vez de python3?
Wee Hong
@ Tim, qual é a melhor maneira de cuidar disso?
Shreya
@ Wee Hong, sim você pode. Em vez de $ sudo update-alternative --install / usr / bin / python3 python3 .... basta substituir por $ sudo update-alterative --install / usr / bin / python python ..... e depois: sudo update -alternatives --config python.
Arthur Zennig 01/07
23

Para mudar para python3, você pode usar o seguinte comando no terminal alias python=python3.

DanteVoronoi
fonte
4
Mas isso só funciona para o processo atual em execução no terminal. Se eu fechar e abrir o terminal, ele voltará a python2.
RejeeshChandran
2
@RejeeshChandran Veja a resposta do Steampunkery
Seraf
13

Uma maneira simples e segura seria usar um alias. Coloque isso no arquivo ~ / .bashrc: se você tiver o editor gedit, use

gedit ~ / .bashrc

para entrar no arquivo bashrc e, em seguida, na parte superior do arquivo bashrc, faça a seguinte alteração.

alias python = python3

Depois de adicionar o acima no arquivo. execute o comando abaixo

source ~ / .bash_aliases ou source ~ / .bashrc

exemplo:

$ python --version

Python 2.7.6

$ python3 --version

Python 3.4.3

$ alias python = python3

$ python --version

Python 3.4.3

Khan
fonte
9

Como um extra, você também pode adicionar um alias para o pip (em .bashrc ou bash_aliases):

alias pip = 'pip3'

Muitos acham que uma instalação limpa do python3 realmente aponta para python3.x; portanto, você pode precisar de:

alias pip = 'pip3.6'
alias python = 'python3.6'

Paraic
fonte
7

Na primeira instalação, python3 e pip3

sudo apt-get install python3 python3-pip

então no seu terminal

alias python=python3

Verifique a versão do python na sua máquina.

python --version

fonte
7

Se você possui o Ubuntu Focal (20.20), pode instalar python-is-python3:

sudo apt-get install python-is-python3

para substituir o link simbólico /usr/bin/pythonpara apontar para /usr/bin/python3.8.

silviot
fonte
5

Como está escrito, update-alternatives --installprecisa dos argumentos <link> <name> <path> e <priority>.

Você tem link ( /usr/bin/python), nome ( python) e caminho ( /usr/bin/python3), sem prioridade.

update-alternatives --help diz:

<priority> é um número inteiro; as opções com números mais altos têm prioridade mais alta no modo automático.

Então, basta colocar um 100ou algo no final

user7502402
fonte
5

Faz

cd ~
gedit .bash_aliases

então escreva

alias python=python3

ou

alias python='/usr/bin/python3'

Salve o arquivo, feche o terminal e abra-o novamente.
Você deveria estar bem agora! Ligação

Rika
fonte
5

Basta seguir estas etapas para ajudar a alterar o python padrão para a nova versão do python. Funcionou bem para mim.

  • sudo apt-install python3.7 Instale a versão mais recente do python desejada
  • cd /usr/bin Digite o diretório raiz onde o python está instalado
  • sudo unlink pythonou sudo unlink python3. Desvincular o python padrão atual
  • sudo ln -sv /usr/bin/python3.7 python Vincule a nova versão baixada do python
  • python --version Verifique a nova versão do python e você estará pronto
Shorya Sharma
fonte
3

Para outra abordagem não invasiva, somente para usuários atuais:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip estará pronto em um novo shell.

tdihp
fonte
2

obter caminho python de

ls /usr/bin/python*

então defina sua versão python

alias python="/usr/bin/python3"
pradeep karunathilaka
fonte
0

A melhor maneira no ubuntu 18.04 que funcionará para todos os usuários é

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

Salve as alterações e reinicie.

Após reiniciar, qualquer versão do python 3 existente no sistema, juntamente com o python 2.7, será tomada como padrão. Você pode ser mais específico dizendo o seguinte no alias se tiver várias versões do python 3.

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6
Mian Asbat Ahmad
fonte
0

Basta remover python-is-python2:

sudo apt purge python-is-python2

E instale python-is-python3:

sudo apt install python-is-python3

Ele automatizará o processo de transição para o novo python3. Opcionalmente, você pode se livrar dos pacotes restantes posteriormente:

sudo apt autoremove && sudo apt autoclean
Farab Alipanah
fonte
0

Para alterar o Python 3.6.8 como padrão no Ubuntu 18.04 do Python 2.7, 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 você mesmo uma alternativa com o seguinte comando:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Mude o caminho /usr/bin/python3para a versão python desejada de acordo.

O último argumento especificado como prioridade significa que, se nenhuma seleção alternativa manual for feita, a alternativa com o número de prioridade mais alto será definida. No nosso caso, definimos uma prioridade 2 para /usr/bin/python3.6.8e, como resultado, ela /usr/bin/python3.6.8foi definida como versão python padrão automaticamente pelo comando update-alternative.

podemos alternar a qualquer momento entre as versões alternativas do python listadas acima, usando o comando abaixo e inserindo um número de seleção:

update-alternatives --config python
Ranjeet Singh
fonte
-1

Inicialmente, verifique se o Python3 está instalado no seu computador

Vá para o seu terminal e digite:

cd ~/ para ir para o seu diretório pessoal

Se você ainda não configurou o seu .bash_profile, digite touch .bash_profilepara criar seu .bash_profile.

Ou digite open -e .bash_profilepara editar o arquivo.

Copie e salve alias python=python3no .bash_profile.

Feche e reabra o seu terminal. Em seguida, digite o seguinte comando para verificar se Python3 é sua versão padrão agora:

python --version

Você deve ver python 3.xy é sua versão padrão.

Felicidades!

nurealam siddiq
fonte
este método já descrito na resposta preferida para esta pergunta. e sua resposta não contribui em nada.
tripulse 6/10/19