¿Cómo actualizar Python?

135

Tengo instalada la versión 2.7 desde principios de 2012. No puedo encontrar ningún consenso sobre si debería desinstalar y borrar completamente esta versión antes de instalar la última.

"Soft" -removing versiones anteriores? ¿Remover / borrar versiones antiguas? Instalando sobre la parte superior?

He visto en alguna parte un proceso especial de instalación / actualización utilizando un método de "segmentación" de las instalaciones de Python, manteniendo diferentes versiones separadas y separadas, pero funcionales. No estoy seguro si esta es la forma estándar, de facto.

También me pregunto si Revo se vuelve demasiado celoso y puede causar problemas para eliminar los restos aún necesarios, como las variables de entorno / RUTA.

(Win7 x64, Python de 32 bits)

Coldblackice
fuente
1
2.7 sigue siendo la última versión, de todos modos en la serie 2.x. 3.x es incompatible con versiones anteriores. si desea actualizar a la versión 2.7 actual, simplemente lo instalaría por encima.
Eevee

Respuestas:

106
ACTUALIZACIÓN : 2018-07-06

¡Esta publicación ahora tiene casi 5 años! Python-2.7 dejará de recibir actualizaciones oficiales de python.org en 2020 . Además, Python-3.7 ha sido lanzado . Consulte Python-Future sobre cómo hacer que su código Python-2 sea compatible con Python-3. Para actualizar conda, la documentación ahora recomienda usar conda update --allen cada uno de sus entornos conda para actualizar todos los paquetes y el ejecutable de Python para esa versión. Además, dado que cambiaron su nombre a Anaconda, no sé si las claves de registro de Windows siguen siendo las mismas.

ACTUALIZACIÓN : 2017-03-24

No ha habido actualizaciones de Python (x, y) desde junio de 2015, por lo que creo que es seguro asumir que ha sido abandonado.

ACTUALIZACIÓN : 2016-11-11

Como comenta @cxw a continuación , estas respuestas son para las mismas versiones de bit, y por versión de bit me refiero a 64 bits frente a 32 bits. Por ejemplo, estas respuestas se aplicarían a la actualización de Python-2.7.10 de 64 bits a Python-2.7.11 de 64 bits, es decir : la misma versión de bit. Si bien es posible instalar dos versiones diferentes de Python juntas, requeriría algún pirateo, por lo que guardaré ese ejercicio para el lector. Si no desea hackear, le sugiero que si cambia las versiones de bits, elimine primero la otra versión de bits.

ACTUALIZACIONES : 2016-05-16
  • Anaconda y MiniConda se pueden usar con una instalación de Python existente al deshabilitar las opciones para alterar Windows PATHy el Registro. Después de la extracción, cree un enlace simbólico condaen bino instale conda desde PyPI. A continuación, crear otro enlace simbólico llamado conda-activatea activatela carpeta bin de la raíz Anaconda / Miniconda. Ahora Anaconda / Miniconda es como Ruby RVM. Solo use conda-activate rootpara habilitar Anaconda / Miniconda.
  • Python portátil ya no se está desarrollando o manteniendo.

TL; DR

  • Usando Anaconda o miniconda , luego simplemente ejecute conda update --allpara mantener actualizado cada entorno de conda,
  • misma versión principal de Python oficial ( por ejemplo, 2.7.5), simplemente instale sobre la versión anterior ( por ejemplo, 2.7.4),
  • diferentes versiones principales de Python oficial ( p . ej. 3.3), instalar lado a lado con antiguas, establecer rutas / asociaciones para señalar a dominante ( p . ej. 2.7), acceso directo a otro ( p . ej. en BASH $ ln /c/Python33/python.exe python3).

La respuesta depende:

  1. Si OP tiene 2.7.xy quiere instalar una versión más reciente de 2.7.x, entonces

    • si usa el instalador MSI del sitio web oficial de Python , simplemente instale sobre la versión anterior, el instalador emitirá una advertencia de que eliminará y reemplazará la versión anterior; mirar en "programas instalados" en "panel de control" antes y después confirma que la versión anterior ha sido reemplazada por la nueva versión; las versiones más recientes de 2.7.x son compatibles con versiones anteriores, por lo que esto es completamente seguro y, por lo tanto, en mi humilde opinión, nunca deberían ser necesarias varias versiones de 2.7.x.
    • si está compilando desde la fuente, entonces probablemente debería construir en un directorio nuevo y limpio, y luego señalar su ruta a la nueva compilación una vez que pase todas las pruebas y esté seguro de que se ha construido con éxito, pero es posible que desee conservar la versión anterior construir alrededor porque construir desde la fuente puede ocasionalmente tener problemas. Consulte mi guía para compilar Python x64 en Windows 7 con SDK 7.0 .
    • si realiza la instalación desde una distribución como Python (x, y) , consulte su sitio web. Python (x, y) ha sido abandonado. Creo que las actualizaciones se pueden manejar desde Python (x, y) con su administrador de paquetes, pero las actualizaciones también se incluyen en su sitio web . No pude encontrar una referencia específica, así que quizás alguien más pueda hablar sobre esto. Similar a ActiveState y probablemente Enthought, Python (x, y) establece claramente que es incompatible con otras instalaciones de Python:

      Se recomienda desinstalar cualquier otra distribución de Python antes de instalar Python (x, y)

    • Enthought Canopy utiliza un MSI y se instalará en Program Files\Enthoughto home\AppData\Local\Enthought\Canopy\Apppara todos los usuarios o por usuario, respectivamente. Las instalaciones más nuevas se actualizan utilizando la herramienta de actualización integrada. Ver su documentación .
    • ActiveState también usa un MSI para que las instalaciones más nuevas se puedan instalar sobre las anteriores. Ver sus notas de instalación .

      Otras instalaciones de Python 2.7 En Windows, ActivePython 2.7 no puede coexistir con otras instalaciones de Python 2.7 (por ejemplo, una compilación de Python 2.7 de python.org). Desinstale cualquier otra instalación de Python 2.7 antes de instalar ActivePython 2.7.

    • Sage recomienda que lo instale en una máquina virtual y proporciona un archivo de imagen Oracle VirtualBox que se puede utilizar para este propósito. Las actualizaciones se manejan internamente emitiendo el sage -upgradecomando.
    • Anaconda se puede actualizar mediante el condacomando :

      conda update --all

      Anaconda / Miniconda permite a los usuarios crear entornos para administrar múltiples versiones de Python, incluyendo Python-2.6, 2.7, 3.3, 3.4 y 3.5. Las instalaciones raíz de Anaconda / Miniconda se basan actualmente en Python-2.7 o Python-3.5.

      Anaconda probablemente interrumpirá cualquier otra instalación de Python. La instalación utiliza el instalador MSI. [ ACTUALIZACIÓN : 2016-05-16] Anaconda y Miniconda ahora usan .exeinstaladores y brindan opciones para deshabilitar las PATHalteraciones de Windows y del Registro.

      Por lo tanto, Anaconda / Miniconda se puede instalar sin interrumpir las instalaciones existentes de Python dependiendo de cómo se instaló y las opciones que se seleccionaron durante la instalación. Si .exese usa el instalador y las opciones para alterar Windows PATHy el Registro no están deshabilitadas, cualquier instalación anterior de Python se deshabilitará , pero simplemente desinstalar la instalación de Anaconda / Miniconda debería restaurar la instalación original de Python, excepto quizás las Python\PythonCoreclaves del Registro de Windows .

      Anaconda / Miniconda hace las siguientes ediciones de registro, independientemente de las opciones de instalación: HKCU\Software\Python\ContinuumAnalytics\con las teclas siguientes: Help, InstallPath, Modulesy PythonPath- Python oficial registra estas teclas también, pero bajo Python\PythonCore. También la información de desinstalación está registrada para Anaconda \ Miniconda. A menos que seleccione la opción "Registrarse con Windows" durante la instalación, no se crea PythonCore, por lo que las integraciones como Python Tools para Visual Studio no ven automáticamente Anaconda / Miniconda. Si la opción para registrar Anaconda / Miniconda está habilitada, entonces creo que sus claves de registro de Python Windows existentes se alterarán y la desinstalación probablemente no las restaurará.

    • Creo que las actualizaciones de WinPython pueden manejarse a través del Panel de control de WinPython .
    • PortablePython está ya no está desarrollando . No tenía método de actualización. Posiblemente cambios podrían ser descomprimido en un directorio fresca y luego App\lib\site-packagesy App\Scriptsse podrían copiar a la nueva instalación, pero si esto no funciona, a continuación, volver a instalar todos los paquetes podrían haber sido necesario. Use pip listpara ver qué paquetes se instalaron y sus versiones. Algunos fueron instalados por PortablePython. Use easy_install pippara instalar pip si no se instaló.
  2. Si OP tiene 2.7.xy quiere instalar una versión diferente, por ejemplo , <= 2.6.xo> = 3.xx, entonces está bien instalar diferentes versiones en paralelo. Debe elegir qué versión de Python (si la hay) asociar con los *.pyarchivos y cuál desea en su ruta, aunque debería poder configurar shells con diferentes rutas si usa BASH . AFAIK 2.7.x es compatible con versiones anteriores de 2.6.x, por lo que no es necesario instalar de lado a lado en mi humilde opinión, sin embargo, Python-3.xx no es compatible con versiones anteriores, por lo que mi recomendación sería poner Python-2.7 en su camino y tener Python-3 será una versión opcional creando un acceso directo a su ejecutable llamado python3 (esta es una configuración común en Linux). La ruta de instalación predeterminada oficial de Python en Windows es

    • C: \ Python33 para 3.3.x (último 2013-07-29)
    • C: \ Python32 para 3.2.x
    • &C.
    • C: \ Python27 para 2.7.x (más reciente 2013-07-29)
    • C: \ Python26 para 2.6.x
    • &C.
  3. Si OP no está actualizando Python, sino simplemente actualizando paquetes, es posible que deseen examinar virtualenv para mantener separadas las diferentes versiones de paquetes específicos para sus proyectos de desarrollo. Pip también es una gran herramienta para actualizar paquetes. Si los paquetes usan instaladores binarios, generalmente desinstalo el paquete anterior antes de instalar el nuevo.

Espero que esto aclare cualquier confusión.

Mark Mikofski
fuente
1
Hola Mark, tengo una pregunta de novato. ¿Crees que es realmente importante actualizar de 2.7.xa 3.3.x? Estoy empezando a usar Python y tengo instalada la versión anterior, pero desde que comencé quería aprender la versión más nueva (a menos que solo haya diferencias muy pequeñas). ¿Cuál es tu llamada en esto? Gracias por tu ayuda.
Matteo
77
Yo usaría ambos. Si se encuentra en MS Windows, que se pondrá en la carpeta raíz C:\Python27y C:\Python33, si estás en Mac, podrás ver /Library/Frameworks/Python/Versions/2.7.xy /Library/Frameworks/Python/Versions/3.3.xy si estás en Linux probablemente ya tenga tanto una instalación. La tradición es usar Python-2.7 y vincular el binario para Python-3.3 a python33. También vea Python2orPython3 y Python 2 vs Python 3 . Personalmente soy demasiado vago para cambiar a 3.3.
Mark Mikofski
2
¡Gracias por la respuesta detallada! Con 2.7, la instalación en versiones anteriores no funcionaba cuando una era de 32 bits y la otra de 64 bits. Terminé con dos entradas en "Programas y características", ambas apuntando a C: \ Python27. ¿Estaría dispuesto a agregar a su respuesta que la gente solo debería sobrescribir 32 con 32 y 64 con 64? ¡Gracias!
cxw el
1
@cxw gracias por los comentarios. Si quieres tener 32 y 64 juntos, hay formas. Probablemente el más fácil es utilizar lo que se llama un "admin" instalación de la versión de 32 bits en C:\Python27_x86la línea de comandos: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Otra opción es construir desde la fuente o probar Bootstrap Python .
Mark Mikofski
1
El instalador de MSI dice que reemplazará la carpeta 2.7, sin embargo, si almacena otras secuencias de comandos en la carpeta raíz 2.7, no las eliminará;)
XXN
6

La mejor solución es instalar las diferentes versiones de Python en múltiples rutas.

p.ej. C: \ Python27 para 2.7 y C: \ Python33 para 3.3.

Lea esto para obtener más información: Cómo ejecutar múltiples versiones de Python en Windows

Wei Yen
fuente
Así es como lo hago. Ejecuto las versiones de 32 y 64 bits de python 2.7.xx y 3.5.xx y IronPython 2.7.xx. Uso Eclipse para el desarrollo y elijo la ruta de Python al depurar. Cuando ejecuto un script, simplemente configuro la ruta a la versión de intérprete que deseo usar. La actualización de 3.5.0 a 3.5.3 ofrece una opción de actualización simple frente a una nueva instalación.
Bill Kidd el
5
  • Los instaladores oficiales de Python .msi están diseñados para reemplazar:

    • cualquier versión micro anterior (en xyz , z es "micro") porque se garantiza que son compatibles con versiones anteriores y compatibles con binarios
    • una instalación de "instantánea" (construida a partir de la fuente) con cualquier versión micro
  • Un instalador de instantáneas está diseñado para reemplazar cualquier instantánea con una versión micro inferior.

(Ver código responsable para 2.x , para 3.x )

Cualquier otra versión no es necesariamente compatible y, por lo tanto, se instala junto con la existente. Si desea desinstalar la versión anterior, deberá hacerlo manualmente. Y también desinstale los módulos de terceros que tenía para ello:

  • Si instaló algún módulo de bdist_wininstpaquetes (Windows .exes), desinstálelo antes de desinstalar la versión, o el desinstalador podría no funcionar correctamente si tiene una lógica personalizada
  • los módulos instalados con setuptools/ pipque residen Lib\site-packagespueden eliminarse luego
  • los paquetes que instaló por usuario, si los hay, residen %APPDATA%/Python/PythonXY/site-packagesy también pueden eliminarse
ivan_pozdeev
fuente
1

Siempre acabo de instalar la nueva versión en la parte superior y nunca tuve ningún problema. Sin embargo, asegúrese de que su ruta esté actualizada para apuntar a la nueva versión.

Zack
fuente
1
Cuando instala sobre la parte superior, ¿retiene los módulos externos como pygame, bs4, lxml, etc. que descargué?