Cómo ejecutar múltiples versiones de Python en Windows

Tenía dos versiones de Python instaladas en mi máquina (versiones 2.6 y 2.5). Quiero ejecutar 2.6 para un proyecto y 2.5 para otro.

¿Cómo puedo especificar cuál quiero usar?

Estoy trabajando en Windows XP SP2.

Ejecutar una copia diferente de Python es tan fácil como iniciar el ejecutable correcto. Mencionas que has iniciado una instancia de python, desde la línea de comandos, simplemente escribiendo python .

Lo que esto hace en Windows es rastrear la variable de entorno% PATH%, buscando un ejecutable, ya sea un archivo por lotes (.bat), un archivo de comandos (.cmd) o algún otro ejecutable para ejecutar, que coincida con el nombre dado. Cuando encuentra el archivo correcto para ejecutar, lo hace.

Ahora, si ha instalado dos versiones de python 2.5 y 2.6, la ruta tendrá ambos directorios, algo como PATH=c:\python\2.5;c:\python\2.6 pero Windows dejará de examinar la ruta cuando encuentra una coincidencia.

Lo que realmente necesita hacer es llamar explícitamente a una o ambas aplicaciones, como c:\python\2.5\python.exe o c:\python\2.6\python.exe .

La otra alternativa es crear un acceso directo al respectivo python.exe llamando a uno de ellos python25 y al otro python26; luego puede simplemente ejecutar python25 en su línea de comando.

Añadiendo dos soluciones más al problema:

  • Utilice pylauncher (si tiene Python 3.3 o una versión más reciente, no es necesario instalarlo porque ya viene con Python) y agregue líneas de shebang a sus scripts;

#! c:\[path to Python 2.5]\python.exe #! c:\[path to Python 2.5]\python.exe – para los scripts que desea ejecutar con Python 2.5
#! c:\[path to Python 2.6]\python.exe #! c:\[path to Python 2.6]\python.exe – para los scripts que desea ejecutar con Python 2.6

o en lugar de ejecutar el comando python ejecute el comando pylauncher ( py ) especificando qué versión de Python desea;

py -2.6 – versión 2.6
py -2 – última versión instalada 2.x
py -3.4 – versión 3.4
py -3 – última versión instalada 3.x

  • Instale virtualenv y cree dos virtualenvs;

virtualenv -pc:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]

virtualenv -pc:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]

por ejemplo

virtualenv -pc:\python2.5\python.exe c:\venvs\2.5

virtualenv -pc:\python2.6\python.exe c:\venvs\2.6

entonces puedes activar el primero y trabajar con Python 2.5 como este
c:\venvs\2.5\activate
y cuando quieres cambiar a Python 2.6 lo haces

 deactivate c:\venvs\2.6\activate 

A partir de Python 3.3, está el lanzador oficial de Python para Windows ( http://www.python.org/dev/peps/pep-0397/ ). Ahora, puede usar el #!pythonX para determinar la versión deseada del intérprete también en Windows. Ver más detalles en mi otro comentario o leer el PEP 397.

Resumen: py script.py lanza la versión de Python indicada en #! o Python 2 si #! Está perdido. El py -3 script.py lanza el Python 3.

Según @alexander, puede hacer un conjunto de enlaces simbólicos como el siguiente. Póngalos en un lugar que esté incluido en su camino para que puedan invocarse fácilmente.

 > cd c:\bin > mklink python25.exe c:\python25\python.exe > mklink python26.exe c:\python26\python.exe 

Siempre que c: \ bin o donde sea que los haya colocado estén en su camino, ahora puede ir

 > python25 

Cuando instale Python, no sobrescribirá otras instalaciones de otras versiones principales. Así que la instalación de Python 2.5.x no sobrescribirá Python 2.6.x, aunque la instalación 2.6.6 sobrescribirá 2.6.5.

Así que simplemente puedes instalarlo. Entonces llamas a la versión de Python que deseas. Por ejemplo:

 C:\Python2.5\Python.exe 

para Python 2.5 en windows y

 C:\Python2.6\Python.exe 

para Python 2.6 en windows, o

 /usr/local/bin/python-2.5 

o

 /usr/local/bin/python-2.6 

en Windows Unix (incluyendo Linux y OS X).

Al instalar en Unix (incluidos Linux y OS X), se instalará un comando genérico de python , que será el último que instaló. En general, esto no es un problema, ya que la mayoría de los scripts llamarán explícitamente a /usr/local/bin/python2.5 o algo para protegerse contra eso. Pero si no quieres hacer eso, y probablemente no, puedes instalarlo así:

 ./configure make sudo make altinstall 

Tenga en cuenta el “altinstall” que significa que lo instalará, pero no reemplazará el comando python .

En Windows, no recibes un comando de python global, que yo sepa, por lo que no es un problema.

Aquí hay un hack rápido:

  1. Vaya al directorio de la versión de python que desea ejecutar
  2. Haga clic derecho en python.exe
  3. Seleccione ‘ Crear acceso directo
  4. Dale a ese acceso directo un nombre al que llamar (uso p27, p33, etc.)
  5. Mueva ese acceso directo a su directorio de inicio ( C:\Users\Your name )
  6. Abra un símbolo del sistema y escriba name_of_your_shortcut.lnk (yo uso p27.lnk )
  1. instalar python

    • C: \ Python27
    • C: \ Python36
  2. Variable ambiental

    • PYTHON2_HOME: C:\Python27
    • PYTHON3_HOME: C:\Python36
    • Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  3. renombrar archivo

    • C: \ Python27 \ python.exe → C: \ Python27 \ python2.exe
    • C: \ Python36 \ python.exe → C: \ Python36 \ python3.exe
  4. pipa

    • python2 -m pip install package
    • python3 -m pip install package

cp c: \ python27 \ bin \ python.exe como python2.7.exe

cp c: \ python34 \ bin \ python.exe como python3.4.exe

todos están en la ruta del sistema, elija la versión que desea ejecutar

 C:\Users\username>python2.7 Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> C:\Users\username>python3.4 Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 

A continuación se describe la forma más sencilla de ejecutar varias versiones de python en Windows:

1) Descargue las últimas versiones de python desde python.org/downloads seleccionando la versión relevante para su sistema.

2) Ejecute el instalador y seleccione Agregar python 3.x a la ruta para establecer la ruta automáticamente en python 3 (solo tiene que hacer clic en la checkbox). Para Python 2, abra su instalador de Python 2, seleccione las preferencias que desee, pero recuerde configurar Agregar python.exe a la ruta a Se instalará en el disco duro local . Ahora solo haga clic en siguiente y espere a que el instalador finalice.

3) Cuando ambas instalaciones estén completas. Haga clic con el botón derecho en mi computadora – Ir a propiedades – Seleccionar configuración avanzada del sistema – Ir a variables de entorno – Haga clic en nuevo en Variables del sistema y agregue una nueva variable del sistema con el nombre de la variable como PY_PYTHON y establezca este valor de variable en 3 . Ahora haga clic en Aceptar y debería estar listo.

4) Ahora para probar esto abre el símbolo del sistema . Una vez que estés allí, escribe python o py , debería abrir python3 .

5) Ahora salga de python3 escribiendo exit () . Ahora escribe py -2 debería abrir python 2.

Si nada de esto funciona, reinicie la computadora y si el problema persiste, desinstale todo y repita los pasos.

Gracias.

Usar un archivo por lotes para cambiar, fácil y eficiente en Windows 7. Yo uso esto:

En el cuadro de diálogo de la variable de entorno (C: \ Windows \ System32 \ SystemPropertiesAdvanced.exe),

En la sección de variables de usuario.

  1. agregado% pathpython% a la variable de entorno de ruta

  2. Eliminado cualquier referencia a pathes de python

En la sección de variables del sistema.

  1. Eliminado cualquier referencia a pathes de python

Creé archivos por lotes para cada instalación de Python (ejemplo para 3.4 x64

Nombre = SetPathPython34x64 !!! ToExecuteAsAdmin.bat 😉 solo para recordar.

Contenido del archivo =

  Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin setx PathPython %PathPython% 

Para cambiar entre versiones, ejecuto el archivo por lotes en modo administrador.

!!!!! Los cambios son efectivos para las ventanas de línea de comandos SUBSECUENTES ABIERTAS. !!!

Así que tengo el control exacto sobre él.

Por ejemplo, para la versión 3.6 escriba py -3.6 . Si también tiene versiones de 32 bits y 64 bits, puede simplemente escribir py -3.6-64 o py -3.6-32 .

Usando el Rapid Environment Editor puede empujar al principio del directorio de la instalación de Python deseada. Por ejemplo, para iniciar python desde el directorio c: \ Python27, asegúrese de que el directorio c: \ Python27 esté antes o encima del directorio c: \ Python36 en la variable de entorno Ruta. Desde mi experiencia, el primer ejecutable de Python encontrado en el entorno de Path se está ejecutando. Por ejemplo, tengo MSYS2 instalado con Python27 y desde que agregué C: \ MSYS2 a la ruta anterior a C: \ Python36, se está ejecutando python.exe de la carpeta C: \ MSYS2 ….

Solo llama al ejecutable correcto