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

18

Recentemente, instalei o 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 momentos da instalação, digitei algo yescom pressa e acho que tinha 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).

Captura de tela

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 não tenho certeza.

sinistro
fonte
Sim. usaralias python=python2
Mostafa Ahangarha
AFAIK isso definitivamente vai quebrar outros programas. O que te faz pensar isso? Se o Anaconda define o Python 3 como padrão, provavelmente é por um motivo.
fkraiem
Eu já arruinei um dos meus projetos que foi escrito para 2.x, e a conversão padrão para 3.x não é incentivada, especialmente porque muitos pacotes funcionam em 2.x!
sinister
É quando você fica muito feliz por ter adotado a abordagem profissional e ter um clone de sua unidade de inicialização pré-instalada para evitar que isso se torne um grande desperdício de tempo. Por favor, veja minha resposta abaixo. Eu acho que o seu método de instalação causou a falha. Então, se isso acontecesse comigo, eu iria reverter e tentar novamente. O tempo total seria inferior a um dia para descobrir se é viável. No meu caso, como você pode ver, estou no final das verificações, agora posso progredir para ver se isso vale o esforço em primeiro lugar. Demorou alguns dias para se certificar de que não havia causado um problema, e o trabalho de pesquisa está no caminho certo.
amigos estão dizendo sobre dsolar
quanto a especificar a versão do Python, saiba exatamente o efeito cascata que isso pode ter em todo o sistema. A menos que você esteja apenas jogando, será realmente necessário um processo de verificação completo se você alterar as metas dos which pythonresultados padrão do shebang. Demora um pouco de tempo na frente para evitar descobrir mais tarde que você se pintou no canto da necessidade de reescrever alguns de seus utilitários. O melhor é deixar as coisas funcionando com os padrões, a menos que você tenha muito tempo em suas mãos.
precisa

Respostas:

18

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

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

    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 diretório inicial e faça

mv .bashrc-anaconda3.bak .bashrc

depois inicie um novo shell.

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

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

Dessa forma, a chamada python3começará a partir do Anaconda.


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

Se o shebang #!/usr/bin/pythonfor usado, como provavelmente em todos os executáveis ​​que acompanham o Ubuntu, nada mudará. Por outro lado, #!/usr/bin/env pythonàs vezes é usada uma melhor portabilidade , que agora fará python3.5com que seja chamada.

Nephente
fonte
3
"4. Anexe $ HOME / bin a $ PATH" .. já feito por padrão ~/.profile- apenas um novo logon é necessário após a criação ~/bin.
Muru
@ muru Isso é verdade, obrigado. Adicionado à resposta.
Nephente 20/03/16
ok, funcionou, obrigado! Apenas para avisar, que eu também tinha o python 3.4.3 instalado anteriormente (e o pip e o pip3 estavam associados a ele), agora tenho 2.7, 3.4, 3.5. Agora vou reinstalar o pip para apontar para 3.5!
sinister
O Anaconda vem com seu próprio gerenciador de pacotes chamado conda. Ele também gerencia ambientes virtuais. Eu uso isso para instalar pacotes em vez de pip.
Nephente 20/03/16
7

Boa resposta aqui: /programming/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

então, para alternar:

source activate python2
Patrick Dolan
fonte
Se você precisar, pode muito bem ter problemas muito mais profundos. Se o seu sistema for importante, faça uma verificação completa de quaisquer comandos e / ou utilitários dependentes do Python. Aviso justo.
amigos estão dizendo sobre dsolar
3

Caso alguém esteja olhando para alterar sua versão padrão do python de volta para 2.7 depois de estragar tudo (alterando o padrão para: anaconda ou python 3) e acabar com um software não funcional, basta seguir este link: Link com instruções para alterar o padrão versão python.

Ubdus Samad
fonte
Se uma alteração do sistema der errado, verifique se você pode recuperá-la. Verifique se você possui bons backups de imagem do sistema, para que quaisquer alterações importantes possam ser revertidas rapidamente, caso não ocorram conforme o planejado. Pense profissional. Se você usa técnicas amadoras, não pode esperar resultados profissionais.
amigos estão dizendo sobre dsolar
1

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

Primeiro obtenha sua variável $ PATH :

echo $PATH

Provavelmente será assim (caminho da miniconda antes de tudo):

/home/your_user/miniconda3/bin:$PATH

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

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 python.

A partir do Conda 4.4, eles alteraram o código adicionado para ~ / .bashrc. Agora, para conseguir a mesma coisa, edite ~ / .bashrc e comente a linha abaixo, para evitar que a camada base (ambiente base) seja ativada em todos os terminais. Não há necessidade de tocar em nenhuma outra parte das novas adições. Não tenho certeza do significado CONDA_CHANGEPS1=false, mas ainda não encontrei nenhum problema.

   # CONDA_CHANGEPS1=false conda activate base

E enquanto você não vai ver a pasta Conda no caminho mais, o condacomando ainda será executado muito bem, e o seu original python, python3e pipenvcomandos vai bem.

pedrodcb
fonte
Voto positivo porque acho que você está correto. É bom ter isso no banco de dados. No entanto, posso pedir que você seja um pouco mais específico quanto aos números de versão do software envolvido?
amigos estão dizendo sobre dsolar
Obrigado, e eu realmente não acho que a versão do programa seja importante, isso sempre deve funcionar. No momento, meu instalador estava na seguinte versão: Miniconda3 4.3.14. Isso ajuda?
pedrodcb
0

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

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

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

Então agora, quando vou para a linha de comando e digito, pythonela ainda vai para a minha instalação do Python2.

Confirmado por esta seção:

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

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

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

Quando você pergunta ao sistema, which pythonpode confiar que a string correta seja usada na primeira linha dos programas Python no estilo da linha de comando.

Na minha situação, todos os meus arquivos de script de linha de comando Python continuam sendo executados corretamente.

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

Meu ambiente de computação não me permite voltar e re-projetar processos passados ​​que foram ajustados para funcionar corretamente sem demorar muito, pois eu precisaria voltar e descobrir onde o usei em primeiro lugar.


Conclusão para mim: Após a instalação anacondapara uso futuro, não tive problemas de velocidade ou problemas.


É nesse ponto que estou no processo ... Acabei de re-certificar todo o software passado.


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


Portanto, devo suspeitar que outra instalação simples anacondadeve ter mais a sua situação.

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

SDsolar
fonte
Para sua informação, eu tenho uma estação de trabalho científica completa, trabalhando em dinâmica solar. Também sobre efemérides e interações via satélite. Deve funcionar. Portanto, eu não sou apenas um pônei de um truque nisso tudo. Eu instalo uma coisa de cada vez e depois verifico se tudo antes disso funciona. Então vou para a próxima. SciPy, Matplotlab, etc. (Minha preferência pela plotagem é o gnuplot). Portanto, entenda que estou enviando esta resposta como um ponto de dados de um sistema de trabalho 24x7 ao vivo em um ambiente de pesquisa acadêmica. Este não é um ambiente de teste - é produção diária.
SDsolar
Além disso, como eu mencionei em um comentário acima, PENSE PROFISSIONAL. Esses sistemas são utilizados por pesquisadores de nível muito alto em todo o mundo. -> Verifique se a sua unidade de inicialização possui um clone antes de fazer as principais atualizações do sistema. odd comando é rápido e fácil, e as conexões SATA são fáceis. Não há razão para evitar a proteção do seu sistema. Apenas tome cuidado para que a cada etapa você possa reverter todas e quaisquer mudanças que possam acontecer. Rives duros são muito mais baratos que o seu tempo. (a menos que você não ache isso verdade). Os fundos de subsídios mais uma restrição de tempo devem ser incentivos suficientes.
amigos estão dizendo sobre dsolar