Como atualizar o Python?


135

Eu tenho a versão 2.7 instalada no início de 2012. Não consigo encontrar nenhum consenso sobre se devo desinstalar e limpar completamente esta versão antes de colocar a versão mais recente.

"Soft" - removendo versões antigas? Removendo / limpando versões antigas? Instalando por cima?

Eu já vi em algum lugar um processo especial de instalação / atualização usando um método de "segmentação" das instalações do Python, mantendo diferentes versões separadas e separadas, mas funcionais. Não tenho certeza se essa é a maneira padrão e de fato.

Também me pergunto se o Revo fica muito zeloso e pode causar problemas com a eliminação de restos ainda necessários, como variáveis ​​de ambiente / PATH.

(Win7 x64, Python de 32 bits)


1
2.7 ainda é a versão mais recente - na série 2.x, de qualquer maneira. 3.x é incompatível com versões anteriores. se você quiser atualizar para a versão 2.7 atual, eu instalaria apenas por cima.
Eevee

Respostas:


106
ATUALIZAÇÃO : 06-07-2018

Este post tem agora quase 5 anos! O Python-2.7 deixará de receber atualizações oficiais do python.org em 2020 . Além disso, o Python-3.7 foi lançado . Confira o Python-Future sobre como tornar seu código Python-2 compatível com o Python-3. Para atualizar o conda, a documentação agora recomenda o uso conda update --allem cada um dos seus ambientes conda para atualizar todos os pacotes e o executável do Python para essa versão. Além disso, como eles mudaram seu nome para Anaconda, não sei se as chaves de registro do Windows ainda são as mesmas.

ATUALIZAÇÃO : 2017-03-24

Não há atualizações para o Python (x, y) desde junho de 2015, então acho que é seguro supor que ele foi abandonado.

ATUALIZAÇÃO : 11-11-2016

Como o @cxw comenta abaixo , essas respostas são para as mesmas versões de bits e, por versão de bits, quero dizer 64 bits vs. 32 bits. Por exemplo, essas respostas se aplicariam à atualização de Python-2.7.10 de 64 bits para Python-2.7.11 de 64 bits, ou seja : a mesma versão de bit. Embora seja possível instalar duas versões de bits diferentes do Python juntos, isso exigiria alguns hackers, por isso vou salvar esse exercício para o leitor. Se você não deseja hackear, sugiro que, ao alternar versões de bits, remova a outra versão de bits primeiro.

ATUALIZAÇÕES : 16/05/2016
  • O Anaconda e o MiniConda podem ser usados ​​com uma instalação existente do Python, desativando as opções para alterar o Windows PATHe o Registro. Após a extração, crie um link simbólico condano seu binou instale o conda a partir do PyPI. Em seguida, criar um outro link simbólico chamado conda-activatepara activatena pasta bin da raiz Anaconda / Miniconda. Agora o Anaconda / Miniconda é como Ruby RVM. Basta usar conda-activate rootpara ativar o Anaconda / Miniconda.
  • O Python portátil não está mais sendo desenvolvido ou mantido.

TL; DR

  • Usando Anaconda ou miniconda , basta executar conda update --allpara manter cada ambiente conda atualizado,
  • mesma versão principal do Python oficial ( por exemplo, 2.7.5), basta instalar mais antigo ( por exemplo, 2.7.4),
  • versão principal diferente do Python oficial ( por exemplo, 3.3), instale lado a lado com o antigo, defina caminhos / associações para apontar para dominantes ( por exemplo, 2.7), atalhos para outros ( por exemplo, no BASH $ ln /c/Python33/python.exe python3).

A resposta depende:

  1. Se o OP tiver 2.7.xe desejar instalar uma versão mais recente do 2.7.x,

    • se estiver usando o instalador MSI do site oficial do Python , basta instalar a versão antiga, o instalador emitirá um aviso de que removerá e substituirá a versão anterior; procurar em "programas instalados" no "painel de controle" antes e depois confirma que a versão antiga foi substituída pela nova versão; as versões mais recentes do 2.7.x são compatíveis com versões anteriores, portanto isso é completamente seguro e, portanto, várias versões do IMHO do 2.7.x nunca devem ser necessárias.
    • se estiver construindo a partir do código-fonte, provavelmente você deve criar um diretório novo e limpo e apontar o caminho para o novo build assim que passar em todos os testes e tiver certeza de que ele foi construído com êxito, mas você pode manter o antigo construir ao redor porque a construção a partir da fonte pode ocasionalmente ter problemas. Veja o meu guia para criar o Python x64 no Windows 7 com o SDK 7.0 .
    • se estiver instalando a partir de uma distribuição como Python (x, y) , consulte o site deles. Python (x, y) foi abandonado. Acredito que as atualizações possam ser manipuladas no Python (x, y) com o gerenciador de pacotes, mas as atualizações também estão incluídas no site . Não consegui encontrar uma referência específica, então talvez alguém possa falar sobre isso. Semelhante ao ActiveState e provavelmente Enthought, o Python (x, y) afirma claramente que é incompatível com outras instalações do Python:

      É recomendável desinstalar qualquer outra distribuição Python antes de instalar o Python (x, y)

    • O Enthought Canopy usa um MSI e será instalado em Program Files\Enthoughtou home\AppData\Local\Enthought\Canopy\Apppara todos os usuários ou por usuário, respectivamente. Instalações mais recentes são atualizadas usando a ferramenta de atualização incorporada. Veja a documentação deles .
    • O ActiveState também usa um MSI para que instalações mais recentes possam ser instaladas sobre as mais antigas. Veja as notas de instalação .

      Outras instalações do Python 2.7 No Windows, o ActivePython 2.7 não pode coexistir com outras instalações do Python 2.7 (por exemplo, uma compilação do Python 2.7 a partir de python.org). Desinstale qualquer outra instalação do Python 2.7 antes de instalar o ActivePython 2.7.

    • Sage recomenda que você o instale em uma máquina virtual e fornece um arquivo de imagem do Oracle VirtualBox que pode ser usado para essa finalidade. As atualizações são tratadas internamente emitindo o sage -upgradecomando
    • O Anaconda pode ser atualizado usando o condacomando :

      conda update --all

      O Anaconda / Miniconda permite que os usuários criem ambientes para gerenciar várias versões do Python, incluindo Python-2.6, 2.7, 3.3, 3.4 e 3.5. As instalações raiz do Anaconda / Miniconda são atualmente baseadas em Python-2.7 ou Python-3.5.

      O Anaconda provavelmente interromperá outras instalações do Python. A instalação usa o instalador MSI. [ ATUALIZAÇÃO : 16/05/2016] O Anaconda e o Miniconda agora usam .exeinstaladores e fornecem opções para desativar as PATHalterações do Windows e do Registro.

      Portanto, o Anaconda / Miniconda pode ser instalado sem interromper as instalações existentes do Python, dependendo de como ele foi instalado e das opções selecionadas durante a instalação. Se o .exeinstalador for usado e as opções para alterar o Windows PATHe o Registro não estiverem desativadas, quaisquer instalações anteriores do Python serão desativadas , mas a simples desinstalação da instalação do Anaconda / Miniconda deve restaurar a instalação original do Python, exceto talvez as Python\PythonCorechaves do Registro do Windows .

      Anaconda / Miniconda faz as seguintes edições do registro, independentemente das opções de instalação: HKCU\Software\Python\ContinuumAnalytics\com as seguintes teclas: Help, InstallPath, Modulese PythonPath- Python oficial registra essas teclas também, mas sob Python\PythonCore. As informações de desinstalação também são registradas para Anaconda \ Miniconda. A menos que você selecione a opção "Registrar no Windows" durante a instalação, ela não será criada PythonCore, portanto, integrações como o Python Tools for Visual Studio não veem automaticamente o Anaconda / Miniconda. Se a opção de registrar o Anaconda / Miniconda estiver ativada, acho que suas chaves existentes do Registro do Windows Python serão alteradas e a desinstalação provavelmente não as restaurará.

    • As atualizações do WinPython , eu acho, podem ser tratadas através do Painel de Controle do WinPython .
    • PortablePython não está mais sendo desenvolvido . Não tinha método de atualização. Possivelmente atualizações podem ser descompactado em um diretório fresco e, em seguida, App\lib\site-packagese App\Scriptspoderia ser copiado para a nova instalação, mas se isso não funcionar, então reinstalar todos os pacotes possam ter sido necessário. Use pip listpara ver quais pacotes foram instalados e suas versões. Alguns foram instalados pelo PortablePython. Use easy_install pippara instalar o pip se não estiver instalado.
  2. Se o OP tiver 2.7.x e desejar instalar uma versão diferente, por exemplo , <= 2.6.x ou> = 3.xx, a instalação de versões diferentes lado a lado é boa. Você deve escolher qual versão do Python (se houver) associar aos *.pyarquivos e qual deseja no seu caminho, apesar de poder configurar shells com caminhos diferentes se usar o BASH . O AFAIK 2.7.x é retrocompatível com o 2.6.x, portanto, a instalação lado a lado do IMHO não é necessária; no entanto, o Python-3.xx não é retrocompatível, portanto, minha recomendação seria colocar o Python-2.7 no seu caminho e ter Python-3 é uma versão opcional, criando um atalho para o seu executável chamado python3 (essa é uma configuração comum no Linux). O caminho oficial de instalação padrão do Python no Windows é

    • C: \ Python33 para 3.3.x (mais recente em 29/07/2013)
    • C: \ Python32 para 3.2.x
    • & c.
    • C: \ Python27 para 2.7.x (mais recente em 29/07/2013)
    • C: \ Python26 para 2.6.x
    • & c.
  3. Se o OP não estiver atualizando o Python, mas apenas atualizando os pacotes, eles poderão procurar o virtualenv para manter separadas as diferentes versões dos pacotes específicas para seus projetos de desenvolvimento. O Pip também é uma ótima ferramenta para atualizar pacotes. Se os pacotes usam instaladores binários, geralmente desinstalo o pacote antigo antes de instalar o novo.

Espero que isso esclareça qualquer confusão.


1
Ei Mark, eu tenho uma pergunta para iniciantes. Você acredita que é realmente importante atualizar do 2.7.x para o 3.3.x? Estou começando a usar python e tenho a versão antiga instalada, mas desde o começo eu queria aprender a versão mais recente (a menos que haja apenas pequenas diferenças). Como você chama isso? Obrigado pela ajuda.
Matteo

7
Eu usaria os dois. Se você estiver em MS Windows, você receberá em sua pasta raiz C:\Python27e C:\Python33, se você estiver no Mac, você verá /Library/Frameworks/Python/Versions/2.7.xe /Library/Frameworks/Python/Versions/3.3.xe se você estiver em Linux você provavelmente já tem tanto instalar. A tradição é usar o Python-2.7 e vincular o binário do Python-3.3 a python33. Veja também Python2orPython3 e Python 2 vs Python 3 . Pessoalmente, tenho preguiça de mudar para o 3.3.
Mark Mikofski

2
Obrigado pela resposta detalhada! Com o 2.7, a instalação mais antiga não funcionava quando um era de 32 bits e o outro era de 64 bits. Acabei com duas entradas em "Programas e Recursos", ambas apontando para C: \ Python27. Você gostaria de acrescentar à sua resposta que as pessoas devem substituir apenas 32 por 32 e 64 por 64? Obrigado!
Cxw 03/11/19

1
@cxw obrigado pelo feedback. Se você deseja ter 32 e 64 juntos, existem maneiras. Provavelmente o mais fácil é usar o que é chamado de "admin" instalar a versão de 32 bits para C:\Python27_x86a partir da linha de comando: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Outra opção é construir a partir do código-fonte ou tente o Bootstrap Python .
Mark Mikofski

1
O instalador da MSI diz que substituirá a pasta 2.7; no entanto, se você armazenar outros scripts na pasta raiz 2.7, ele não os excluirá;)
XXN

6

A melhor solução é instalar as diferentes versões do Python em vários caminhos.

por exemplo. C: \ Python27 para 2.7 e C: \ Python33 para 3.3.

Leia isto para obter mais informações: Como executar várias versões do Python no Windows


É assim que eu faço. Eu executo as versões de 32 e 64 bits do python 2.7.xx e 3.5.xx e do IronPython 2.7.xx. Eu uso o Eclipse para desenvolvimento e escolho o caminho do python ao depurar. Ao executar um script, simplesmente defino o caminho para a versão do intérprete que desejo usar. A atualização 3.5.0 para 3.5.3 oferece uma opção simples de atualização em uma nova instalação.
Bill Kidd

5
  • Os instaladores oficiais do .msi do Python foram projetados para substituir:

    • qualquer micro release anterior (em xyz , z é "micro") porque eles são compatíveis com versões anteriores e binárias
    • uma instalação "instantânea" (criada a partir da fonte) com qualquer versão micro
  • Um instalador de snapshot foi projetado para substituir qualquer snapshot por uma versão micro mais baixa.

(Veja o código responsável para 2.x , para 3.x )

Quaisquer outras versões não são necessariamente compatíveis e, portanto, são instaladas ao lado da existente. Se você deseja desinstalar a versão antiga, precisará fazer isso manualmente. E também desinstale todos os módulos de terceiros que você possui:

  • Se você instalou algum módulo a partir de bdist_wininstpacotes (Windows .exe), desinstale-os antes de desinstalar a versão, ou o desinstalador poderá não funcionar corretamente se tiver lógica personalizada.
  • os módulos instalados com setuptools/ pipque residem Lib\site-packagespodem ser excluídos posteriormente
  • os pacotes que você instalou por usuário, se houver, residem %APPDATA%/Python/PythonXY/site-packagese também podem ser excluídos

1

Eu sempre instalei a nova versão no topo e nunca tive problemas. Certifique-se de que seu caminho esteja atualizado para apontar para a nova versão.


1
Quando você instala por cima, ele mantém os módulos externos, como pygame, bs4, lxml, etc. que eu baixei?
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.