Cómo instalar tanto Python 2.x como Python 3.x en Windows 7

Realizo la mayor parte de mi progtwigción en Python 3.x en Windows 7, pero ahora necesito usar la Biblioteca de Imágenes de Python (PIL), ImageMagick y wxPython, todo lo cual requiere Python 2.x.

¿Puedo tener tanto Python 2.x como Python 3.x instalados en Windows 7? Cuando ejecuto un script, ¿cómo “elegiría” qué versión de Python debería ejecutarlo? ¿Podrán los progtwigs mencionados manejar múltiples versiones de Python instaladas a la vez? He buscado horas y horas para saber cómo hacer esto en vano.

Gracias.

Encontré que la forma formal de hacer esto es la siguiente:

Simplemente instale dos (o más, usando sus instaladores) versiones de Python en Windows 7 (para mí trabajar con 3.3 y 2.7).

Siga las instrucciones a continuación, cambiando los parámetros para sus necesidades.

Cree la siguiente variable de entorno (por defecto al hacer doble clic):

Name: PY_PYTHON Value: 3 

Para iniciar una secuencia de comandos en un intérprete en particular, agregue el siguiente shebang (comienzo de la secuencia de comandos):

 #! python2 

Para ejecutar un script con un intérprete específico, use el siguiente comando de solicitud:

 > py -2 MyScript.py 

Para lanzar un intérprete específico:

 > py -2 

Para iniciar el intérprete predeterminado (definido por la variable PY_PYTHON):

 > py 

Recursos

Documentación: Uso de Python en Windows

PEP 397 – Lanzador de Python para Windows

Lo que hice fue descargar tanto 2.7.6 como 3.3.4. Python 3.3.4 tiene la opción de agregarle la ruta en la variable de entorno para que se haga. Así que básicamente acabo de añadir manualmente Python 2.7.6.

Cómo…

  1. Inicio> en el tipo de búsqueda en entorno, seleccione “Editar variables de entorno a su cuenta” 1

  2. Desplázate hasta Ruta, selecciona ruta, haz clic en editar.

  3. Añadir C: \ Python27; así que deberías tener rutas a ambas versiones de Python allí, pero si no lo haces, puedes editarlo fácilmente para que lo hagas … C: \ Python27; C: \ Python33;

  4. Navegue a la carpeta Python27 en C: \ y cambie el nombre de una copia de python.exe a python2.exe

  5. Navegue a la carpeta Python34 en C: \ y cambie el nombre de una copia de python.exe a python3.exe

  6. Prueba: abre el indicador de comandos y escribe python2 …. BOOM! Python 2.7.6. salir fuera

  7. Prueba: abre el indicador de comandos y escribe python3 …. BOOM! Python 3.4.3. salir fuera

Nota: (para no romper los comandos pip en los pasos 4 y 5, mantenga una copia de python.exe en el mismo directorio que el archivo renombrado)

Tengo varias versiones en windows. Acabo de cambiar el nombre exe de la versión a la que no estoy por defecto.

python.exe -> python26.exe

pythonw.exe -> pythonw26.exe

En cuanto a los instaladores de paquetes, la mayoría de los instaladores exe le permiten elegir la instalación de python para agregar el paquete también. Para la instalación manual, consulte la opción –prefix para definir dónde se debe instalar el paquete:

http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme

Si usa Anaconda Python, puede instalar fácilmente varios entornos.

Digamos que tenías Anaconda Python 2.7 instalado y querías un entorno python 3.4:

 conda create -n py34 python=3.4 anaconda 

Luego para activar el entorno:

 activate py34 

Y a desactivo:

 deactivate py34 

(Con Linux, debes usar source activate py34 ).

Campo de golf:

Descargar Anaconda Python

Instrucciones para ambientes

En realidad, sólo pensé en una solución interesante. Si bien Windows no le permitirá crear fácilmente alias de progtwigs, en su lugar puede crear archivos de lotes cuyo nombre se haya cambiado y que llamen al progtwig actual.

En lugar de cambiar el nombre del archivo ejecutable, que se romperá en muchas cosas, incluido pip, cree el archivo python2.bat en el mismo directorio que python2.exe. Luego agrega la siguiente línea:

 %~dp0python %* 

¿Qué significa esta syntax arcaica? Bueno, es un script por lotes, (versión de bash para Windows). % ~ dp0 obtiene el directorio actual y% * solo pasará todos los argumentos a python que se pasaron al script.

Repita para python3.bat

También puede hacer lo mismo para pip y otras utilidades, simplemente reemplace la palabra python en el archivo con pip o cualquiera que sea el nombre del archivo. El alias será como se llame el archivo.

Lo mejor de todo, cuando se agrega a la RUTA, Windows ignora la extensión, por lo que se ejecuta

 python3 

Lanzará la versión python3 y el comando python2 lanzará la versión python2.

Por cierto, esta es la misma técnica que utiliza Spyder para agregarse a la ruta en Windows. 🙂

A partir de la versión 3.3, la versión de Windows tiene el iniciador de Python, consulte la sección 3.4. Python Launcher para Windows

Esto es lo que puedes hacer:

Instale cmder . Abra y use Cmder como lo haría con su terminal cmd. Utilice el alias de comando para crear alias de comando.

Hice lo siguiente:

 alias python2 = c:\python27\python.exe alias python3 = c:\python34\python.exe 

¡Y eso es! 😉

Para instalar y ejecutar cualquier versión de Python en el mismo sistema, siga mi guía a continuación.


Por ejemplo, digamos que desea instalar Python 2.xy Python 3.x en el mismo sistema Windows.

  1. Instale sus dos versiones binarias en cualquier lugar que desee.

    • Cuando se le solicite, no registre sus extensiones de archivo y
    • No los agregue automáticamente a la variable de entorno PATH
  2. Ejecutando simplemente el comando python el ejecutable que se encuentra por primera vez en PATH se elegirá para el lanzamiento. En otras palabras, agregue los directorios de Python manualmente. El que agregue primero se seleccionará cuando escriba python . Los progtwigs de Python consecutivos (orden creciente en que sus directorios se colocan en PATH) se elegirán así:

    • py -2 para el segundo python
    • py -3 para el tercer python etc.
  3. No importa el orden de los “pitones” puedes:

    • ejecute los scripts de Python 2.x con el comando: py -2 (funcionalidad de Python 3.x) (es decir, se seleccionará el primer progtwig de instalación de Python 2.x que se encuentra en su PATH)
    • ejecute los scripts de Python 3.x con el comando: o py -3 (es decir, se seleccionará el primer progtwig de instalación de Python 3.x que se encuentra en su PATH)

En mi ejemplo, tengo Python 2.7.14 instalado primero y Python 3.5.3. Así es como mi variable PATH comienza con:

PATH = C: \ Archivos de progtwig \ Microsoft MPI \ Bin \; C: \ Python27; C: \ Archivos de progtwig \ Python_3.6 \ Scripts \; C: \ Archivos de progtwig \ Python_3.6 \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Archivos de progtwig (x86) \ Archivos comunes \ Intel \ Shared

Tenga en cuenta que Python 2.7 es el primero y Python 3.5 segundo.

  • Entonces, ejecutar el comando python lanzará python 2.7 (si Python 3.5 el mismo comando ejecutaría Python 3.5).
  • La ejecución de py -2 inicia Python 2.7 (porque sucede que el segundo Python es Python 3.5, que es incompatible con py -2 ). La ejecución de py -3 inicia Python 3.5 (porque es Python 3.x)
  • Si tuvieras otro python más adelante en tu camino, lanzarías así: py -4 . Esto puede cambiar si / cuando se lanza Python versión 4.

Ahora py -4 o py -5 etc. en las salidas de mi sistema: la Requested Python version (4) not installed o la Requested Python version (5) not installed etc.

Esperemos que esto sea lo suficientemente claro.

Puede instalar varias versiones de Python en una máquina y, durante la instalación, puede elegir que una de ellas se asocie con las extensiones de archivo de Python. Si instala módulos, habrá diferentes paquetes de configuración para diferentes versiones, o puede elegir qué versión desea orientar. Como generalmente se instalan en el directorio site-packages de la versión del intérprete, no debería haber ningún conflicto (pero no lo he probado). Para elegir qué versión de python, tendría que especificar manualmente la ruta al intérprete si no es la predeterminada. Que yo sepa, compartirían las mismas variables PATH y PYTHONPATH, lo que puede ser un problema.

Nota: ejecuto Windows XP. No tengo idea si algo de esto cambia para otras versiones, pero no veo ninguna razón para hacerlo.

Lo que he hecho en mi propia computadora con Windows donde tengo Python 2.7 y Python 3.4 instalado es que escribí un simple archivo .bat en el mismo directorio que mis archivos Python.exe. Se ven algo así como

 cmd /k "c:\python27\python.exe" %* 

El% * le permite agregar argumentos (archivos de Python) después. Creo que / k mantiene abierto el aviso después de que termina de ejecutar el script. Luego guardo eso como python27.bat Luego voy a mi directorio de Python 3 y hago un archivo bat allí. Ahora en mi línea de comandos puedo escribir

 Python27 helloworld.py 

O

 Python34 helloworld.py 

Y se ejecutarán en sus respectivas versiones de Python. Asegúrese de que c: \ python27 y c: \ python34 estén en sus variables de entorno.

Tengo mi respuesta desde aqui

Hice esto en tres pasos siguiendo las instrucciones aquí: Todo esto se toma directamente desde aquí: http://ipython.readthedocs.io/en/stable/install/kernel_install.html . Actualmente estoy ejecutando Python 2.x en Windows 8 y tengo instalado Anaconda 4.2.13.

1) Primero instala la última versión de python:

 conda create -n python3 python=3 ipykernel 

2) Siguiente activar python3

 activate python3 

3) Instalar el kernel:

 python -m ipykernel install --user 

Si tiene Python 3 instalado y desea instalar 2, cambie el 2 y el 3 de arriba. Cuando abre un nuevo cuaderno, ahora puede elegir entre Python 2 o 3.

Verifique las variables de entorno de su sistema después de instalar Python, los directorios de python 3 deben estar primero en su variable PATH, luego python 2.

La variable de ruta que coincida primero es la que usa Windows.

Como siempre py -2 lanzará python2 en este escenario.

Yo mismo he encontrado ese problema e hice mis lanzadores en un .bat para que pudieras elegir la versión que quieres lanzar.

El único problema es que su .py debe estar en la carpeta de python, pero de todos modos aquí está el código:

Para Python2

 @echo off title Python2 Launcher by KinDa cls echo Type the exact version of Python you use (eg. 23, 24, 25, 26) set/p version= cls echo Type the file you want to launch without .py (eg. hello world, calculator) set/p launch= path = %PATH%;C:\Python%version% cd C:\Python%version% python %launch%.py pause 

Para Python3

 @echo off title Python3 Launcher by KinDa cls echo Type the exact version of Python you use (eg. 31, 32, 33, 34) set/p version= cls echo Type the file you want to launch without .py (eg. hello world, calculator) set/p launch= cls set path = %PATH%:C:\Python%version% cd C:\Python%version% python %launch%.py pause 

Guárdalos como .bat y sigue las instrucciones que se encuentran dentro.

Instale el que más use (3.3 en mi caso) sobre el otro. Eso obligará a IDLE a usar el que quieras.

Alternativamente (desde el README de python3.3):

Instalando múltiples versiones

En los sistemas Unix y Mac, si pretende instalar varias versiones de Python utilizando el mismo prefijo de instalación (–prefijo del script de configuración), debe tener cuidado de que su ejecutable de Python principal no se sobrescriba con la instalación de una versión diferente. Todos los archivos y directorios instalados con “make altinstall” contienen la versión principal y la versión secundaria y, por lo tanto, pueden vivir lado a lado. “make install” también crea $ {prefix} / bin / python3 que se refiere a $ {prefix} /bin/pythonX.Y. Si pretende instalar varias versiones con el mismo prefijo, debe decidir qué versión (si corresponde) es su versión “primaria”. Instala esa versión usando “make install”. Instale todas las otras versiones usando “make altinstall”.

Por ejemplo, si desea instalar Python 2.6, 2.7 y 3.3, siendo 2.7 la versión principal, ejecutaría “make install” en su directorio de comstackción 2.7 y “make altinstall” en los demás.

Solo tuve que instalarlos. Luego usé el software gratuito (y portátil) en http://defaultprogramseditor.com/ en “Configuración de tipo de archivo” / “Menú contextual” / búsqueda: “py”, elegí el archivo .py y agregué un comando ‘abrir’ para 2 IDLE copiando el comando existente llamado ‘abrir con IDLE, cambiando los nombres a IDLE 3.4.1 / 2.7.8, y reemplazando los números de los archivos de sus respectivas versiones en la ruta del progtwig. Ahora solo tengo que hacer clic derecho en el archivo .py y elegir qué IDLE quiero usar. Puede hacer lo mismo con los intérpretes directos si lo prefiere.

Lo que he hecho personalmente es muy simple.

Sistema: Windows 8.1 x86_64, versiones de Python x64

  1. Instale los últimos binarios de Python 3.x y agregue el directorio a la ruta (también registro las extensiones .py para que se ejecuten con Python 3.x).
  2. Instale los últimos binarios de Python 2.x (no registrar extensiones con él ni agregarlos a la ruta).

Parece que Python 3.x proporciona compatibilidad hacia atrás con Python 2.x si se instalan los binarios de Python 2.x.

Descarga los instaladores del sitio web oficial de Python. Después de instalarlos como antes, ejecute Python 3 normalmente como lo hizo. Ahora, para Python 2.x, los progtwigs los ejecutan como tales: py -2 [command] .

Probado en múltiples progtwigs de Python 2.x solamente.

Solo funciona si ejecuta su código en su IDE de Python

Tengo ambos Python 2.7 y Python 3.3 instalados en mi sistema operativo Windows. Si bash iniciar un archivo, normalmente se abrirá en el IDE de python 2.7. Cómo resolví este problema, fue cuando elegí ejecutar mi código en Python 3.3, abro IDLE de Python 3.3 (GUI de Python), selecciono un archivo, abro mi archivo con el IDLE y lo guardo. Luego, cuando ejecuto mi código, se ejecuta en el IDLE con el que lo abrí actualmente. Funciona a la inversa con 2.7.

Instalé Python 2.7.13 y Python 3.6.1 en Windows 10pro y obtuve el mismo “error fatal” cuando probé pip2 o pip3.

Lo que hice para corregir esto fue ir a la ubicación de python.exe para los archivos de python 2 y python 3 y crear una copia de cada uno, luego renombré cada copia a python2.exe y python3.exe dependiendo de la versión de python en el Carpeta de Instalacion. Por lo tanto, tenía en cada carpeta de instalación de python un archivo python.exe y un python2.exe o python3.exe dependiendo de la versión de python.

Esto resolvió mi problema cuando escribí pip2 o pip3.

Si no puede hacer que nada más funcione, abra un intérprete en la versión que elija (prefiero usar iPython) y:

 import subprocess subprocess.call('python script.py -flags') 

Esto utiliza cualquier versión de python en la que esté operando actualmente. Funciona bien para un solo script, pero se saldrá de control rápidamente si ejecuta muchos scripts, en cuyo caso siempre puede hacer un archivo por lotes con todas estas llamadas dentro. No es la respuesta más elegante, pero funciona.

¿Hay alguna manera de hacer alias para diferentes versiones de Python a la Linux?