Como faço para voltar para o python2 depois que o Anaconda definir python3 como o padrão?

13

Recentemente, eu instalei Anaconda3-2.5.0-Linux-x86_64.sh no meu 15.04 e acabei com isso!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

Durante os últimos instantes da instalação, eu inseri algo como yes com pressa, e suponho que tivesse que fazer algo com isso. (Ok, minha culpa, eu deveria ter lidado com isso com cuidado, mas preciso de ajuda agora, não de críticas).

AFAIK isso definitivamente vai quebrar outros programas. O que eu faço agora?

O que eu acho que poderia funcionar.

Isso pode ser feito usando aliases?

alias python=python2

Mas eu não tenho certeza.

    
por sinister 20.03.2016 / 10:05

5 respostas

11

Eu passei pela instalação em uma VM e o seguinte aconteceu.

  1. O instalador solicita um local de instalação. O padrão é /home/myuser/anaconda3 .
  2. No final, você será perguntado

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak
    

Para restaurar o comportamento antigo, vá para o seu diretório pessoal e faça

mv .bashrc-anaconda3.bak .bashrc

inicie um novo shell.

Como você sugere, você poderia alias python=python2 , mas acho isso um pouco estranho. Eu faria

  1. Restaurar o original .bashrc
  2. Criar (se não existir) ~/bin
  3. Link ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [Prepend $HOME/bin to $PATH ] (Já deve estar definido por padrão por ~/.profile )
  5. Relogin.

Dessa forma, chamar python3 iniciará o da Anaconda.

Um ponto importante é que o /usr/bin/python original ainda está lá e ainda aponta para python2.7 . As ramificações de ter python->python3 em seu caminho dependem de como um script específico é chamado.

Se o shebang #!/usr/bin/python for usado, como provavelmente está em todos os executáveis que acompanham o Ubuntu, nada será alterado. Por outro lado, para melhor portabilidade #!/usr/bin/env python é por vezes usado, o que agora fará com que python3.5 seja chamado.

    
por Nephente 20.03.2016 / 11:59
7

Boa resposta aqui: link

conda create -n python2 python=2.7 anaconda

depois, para alternar:

source activate python2
    
por Patrick Dolan 21.10.2016 / 23:18
3

Caso alguém queira mudar sua versão padrão do Python de volta para 2.7 depois de alterá-lo (alterando um padrão para: anaconda ou python 3) e finalizando com um software não-funcional, siga este link: Link com instruções para alterar a versão padrão do python.

    
por Ubdus Samad 15.02.2017 / 07:54
1

Isso funcionou para mim, mas para o Miniconda, também deve funcionar para o Anaconda, mas, por favor, corrija-me se estiver errado.

Primeiro, pegue sua variável $ PATH :

echo $PATH

Provavelmente ficará assim (caminho do miniconda antes de todo o resto):

/home/your_user/miniconda3/bin:$PATH

Copie esse caminho para o final do seu arquivo ~ / .bashrc , mas com o Miniconda no final, em vez do início do caminho da seguinte forma:

export PATH="$PATH:/home/your_user/miniconda3/bin"

O sistema procurará programas no início da variável $ PATH antes da pasta miniconda3 / bin.

Ele deve restaurar as versões dos programas anteriores que você tinha como o python.

    
por ronalara 18.05.2017 / 23:59
0

Aqui está minha resposta, e pode ou não ser a resposta específica real para o que você fez em seu próprio sistema.

No entanto, estou em uma situação semelhante e tive a mesma preocupação.

Estou usando o Ubuntu 16.04 LTS e o Python 2.7.12, e recentemente instalei o Anaconda.

Agora, quando eu vou para a linha de comando e digito python , ele ainda vai para a minha instalação do Python2.

Confirmado por esta resolução:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

Portanto, no meu caso, anaconda NÃO causa nenhum problema com meus shebangs Python2 padrão.

Em última análise, essa é a questão.

Quando você perguntar ao sistema which python , pode confiar que esta seja uma string correta a ser usada na primeira linha de seus programas Python no estilo de linha de comando.

Na minha situação, todos os meus mesmos arquivos de script de linha de comando do Python continuam a executar bem.

Eu costumo escrever Python em um modo compatível com 3. Como usar parênteses ao redor das minhas declarações impressas. Mas estou resistindo ativamente a uma grande mudança no sistema que pode fazer com que os programas do Python 2 enfrentem falhas. O Python 3 parece ótimo, mas desnecessário para minhas necessidades. O Python 2 é uma linguagem incrível.

Meu ambiente de computação não me permite voltar atrás e reprojetar processos antigos que foram ajustados para funcionar corretamente, sem perder tempo, já que eu teria que voltar e descobrir onde o usei em primeiro lugar. .

Linha de fundo para mim: Após instalar anaconda para uso futuro, não tive nenhum problema nem problemas de velocidade.

Esse é o ponto em que estou no processo ... Acabei de recertificar todo o software anterior.

O próximo passo é realmente usar algumas das coisas legais que são prometidas no pacote.

Então, devo suspeitar que outro simplesmente instalando anaconda deve haver mais na sua situação.

Da minha experiência, não é um problema.

    
por SDsolar 19.12.2017 / 08:55