¿Puedo instalar Python 3.xy 2.x en la misma computadora con Windows?

Estoy ejecutando Windows y el shell / OS ejecuta automáticamente Python según la configuración del registro cuando ejecuta un progtwig en la línea de comandos. ¿Se interrumpirá esto si instalo una versión 2.xy 3.x de Python en la misma máquina?

Quiero jugar con Python 3 y poder ejecutar scripts 2.x en la misma máquina.

La solución oficial para la convivencia parece ser el Python Launcher para Windows , PEP 397, que se incluyó en Python 3.3.0 . Al instalar el lanzamiento, se pyw.exe lanzadores py.exe y pyw.exe en %SYSTEMROOT% ( C:\Windows ), que luego se asocia con los scripts py y pyw , respectivamente.

Para utilizar el nuevo iniciador (sin configurar manualmente sus propias asociaciones), deje la opción “Registrar extensiones” habilitada. No estoy muy seguro de por qué, pero en mi máquina dejó Py 2.7 como “predeterminado” (del iniciador).

Ejecutar scripts llamándolos directamente desde la línea de comandos los enrutará a través del lanzador y analizará el shebang (si existe). También puede llamar explícitamente al iniciador y usar los conmutadores: py -3 mypy2script.py .

Todo tipo de shebangs parecen funcionar

  • #!C:\Python33\python.exe
  • #!python3
  • #!/usr/bin/env python3

así como abusos sin sentido

  • #! notepad.exe

Puedes tener ambos instalados.

Deberías escribir esto delante de tu guión:

 #!/bin/env python2.7 

o, eventualmente …

 #!/bin/env python3.6 

Actualizar

Mi solución funciona perfectamente con Unix, después de una búsqueda rápida en Google , aquí está la solución de Windows:

 #!c:/Python/python3_6.exe -u 

Lo mismo: frente a tu guión.

Aquí está mi configuración:

  1. Instale Python 2.7 y 3.4 con los instaladores de Windows .
  2. Vaya a C:\Python34 (la ruta de instalación predeterminada) y cambie python.exe a python3.exe
  3. Edite las variables de entorno para incluir C:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;

Ahora en la línea de comandos puedes usar python para 2.7 y python3 para 3.4.

Desde la versión 3.3, Python introdujo la utilidad Launcher for Windows https://docs.python.org/3/using/windows.html#python-launcher-for-windows .

Para poder usar múltiples versiones de Python:

  1. instala Python 2.x (x es cualquier versión que necesites)
  2. instale Python 3.x (x es cualquier versión que necesite, también debe tener una versión 3.x> = 3.3)
  3. abrir el símbolo del sistema
  4. escribe py -2.x para iniciar Python 2.x
  5. escribe py -3.x para iniciar Python 3.x

Estoy usando 2.5, 2.6 y 3.0 desde el shell con una línea de scripts de proceso por lotes del formulario:

 :: The @ symbol at the start turns off the prompt from displaying the command. :: The % represents an argument, while the * means all of them. @c:\programs\pythonX.Y\python.exe %* 

pythonX.Y.bat y colócalos en algún lugar de tu RUTA. Copie el archivo de la versión secundaria preferida (es decir, la última) en pythonX.bat . (Por ejemplo, copy python2.6.bat python2.bat ). Luego puede usar python2 file.py desde cualquier lugar.

Sin embargo, esto no ayuda ni afecta la situación de la asociación de archivos de Windows. Para eso necesitarás un progtwig lanzador que lea el #! línea, y luego asociar eso con archivos .py y .pyw.

Aqui tienes…

winpylaunch.py

 # # Looks for a directive in the form: #! C:\Python30\python.exe # The directive must start with #! and contain ".exe". # This will be assumed to be the correct python interpreter to # use to run the script ON WINDOWS. If no interpreter is # found then the script will be run with 'python.exe'. # ie: whatever one is found on the path. # For example, in a script which is saved as utf-8 and which # runs on Linux and Windows and uses the Python 2.6 interpreter... # # #!/usr/bin/python # #!C:\Python26\python.exe # # -*- coding: utf-8 -*- # # When run on Linux, Linux uses the /usr/bin/python. When run # on Windows using winpylaunch.py it uses C:\Python26\python.exe. # # To set up the association add this to the registry... # # HKEY_CLASSES_ROOT\Python.File\shell\open\command # (Default) REG_SZ = "C:\Python30\python.exe" S:\usr\bin\winpylaunch.py "%1" %* # # NOTE: winpylaunch.py itself works with either 2.6 and 3.0. Once # this entry has been added python files can be run on the # commandline and the use of winpylaunch.py will be transparent. # import subprocess import sys USAGE = """ USAGE: winpylaunch.py  [arg1] [arg2...] """ if __name__ == "__main__": if len(sys.argv) > 1: script = sys.argv[1] args = sys.argv[2:] if script.endswith(".py"): interpreter = "python.exe" # Default to wherever it is found on the path. lines = open(script).readlines() for line in lines: if line.startswith("#!") and line.find(".exe") != -1: interpreter = line[2:].strip() break process = subprocess.Popen([interpreter] + [script] + args) process.wait() sys.exit() print(USAGE) 

Acabo de leer esto al leer este hilo (porque es lo que necesitaba también). Tengo Pythons 2.6.1 y 3.0.1 tanto en Ubuntu como en Windows. Si no te funciona, publica correcciones aquí.

Cuando agrega ambas a las variables de entorno, habrá un conflicto porque los dos ejecutables tienen el mismo nombre: python.exe .

Solo cambia el nombre de uno de ellos. En mi caso, le python3.exe nombre a python3.exe .

Entonces cuando ejecuto python ejecutará python.exe que es 2.7 y cuando ejecuto python3 ejecutará python3.exe que es 3.6

introduzca la descripción de la imagen aquí

Nota: lo mismo debe hacerse con los scripts pip .

Que yo sepa, Python se ejecuta fuera de la línea de comandos utilizando la variable PATH en lugar de una configuración de registro.

Entonces, si señala la versión correcta en su RUTA, usará eso. Recuerde reiniciar su línea de comandos para usar la nueva configuración de PATH.

La instalación de Python normalmente asocia los .pyc .py , .pyw y .pyw con el intérprete de Python. Por lo tanto, puede ejecutar una secuencia de comandos de Python haciendo doble clic en el Explorador o escribiendo su nombre en una ventana de línea de comandos (de modo que no es necesario escribir python scriptname.py , solo scriptname.py ).

Si desea cambiar manualmente esta asociación, puede editar estas claves en el registro de Windows:

 HKEY_CLASSES_ROOT\Python.File\shell\open\command HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command 

Lanzador de Python

La gente ha estado trabajando en un lanzador de Python para Windows: un progtwig ligero asociado con los archivos .py y .pyw que buscarían una línea “shebang” (similar a Linux y otros) en la primera línea, e iniciaron Python 2.x o 3.x según sea necesario. Consulte la publicación del blog “A Python Launcher for Windows” para obtener más información.

Trate de usar Anaconda.

Usando el concepto de los entornos de Anaconda, digamos que necesita Python 3 para aprender a progtwigr, pero no desea borrar su entorno de Python 2.7 actualizando Python. Puedes crear y activar un nuevo entorno llamado “serpientes” (o lo que quieras), e instalar la última versión de Python 3 de la siguiente manera:

 conda create --name snakes python=3 

Es más sencillo de lo que parece, eche un vistazo a la página de introducción aquí: Cómo comenzar a usar Anaconda

Y luego para manejar su problema específico de tener la versión 2.xy 3.x ejecutándose lado a lado, vea: Administrar las versiones de Python con Anaconda

Aquí es cómo ejecutar Python 2 y 3 en la misma máquina

  1. instala Python 2.x
  2. instala Python 3.x
  3. Iniciar Powershell
  4. Escribe Python -2 para iniciar Python 2.x
  5. Escribe Python -3 para iniciar Python 2.x

El Python Launcher para Windows se integró en Python desde la versión 3.3, tal como se prometió en 2011, cuando Stand Stand debutó por primera vez:

Python Launcher para Windows

Antes de instalar valientemente ambos a la vez, tenía muchas preguntas. Si le doy python, ¿irá a py3 cuando quiera py2? pip / virtualenv sucederá bajo py2 / 3?

Parece ser muy simple ahora.

Sólo instale ciegamente a ambos. Asegúrese de obtener el tipo correcto (x64 / x32). Durante / después de la instalación, asegúrese de agregar a la ruta a sus variables de entorno .

 [ENVIRONMENT]::SETENVIRONMENTVARIABLE("PATH", "$ENV:PATH;C:\PYTHONx", "USER") 

Reemplace la x en el comando anterior para establecer la ruta.

Luego ve a las dos carpetas.

Navegar a

 python3.6/Scripts/ 

y renombrar pip a pip3.

Si ya existe pip3 eliminar el pip. Esto asegurará que solo pip se ejecutará bajo python2 . Se puede verificar mediante:

 pip --version 

En caso de que quiera usar pip con python3 , simplemente use

 pip3 install 

De manera similar, puede hacer lo mismo con el archivo python y otros.

¡Aclamaciones!

Creo que hay una opción para configurar la asociación de archivos de Windows para archivos .py en el instalador. Desactívalo y estarás bien.

Si no, puede volver a asociar fácilmente los archivos .py con la versión anterior. La forma más sencilla es hacer clic derecho en un archivo .py, seleccionar “abrir con” / “elegir progtwig”. En el cuadro de diálogo que aparece, seleccione o busque la versión de Python que desea usar de forma predeterminada y marque la checkbox “Usar siempre este progtwig para abrir este tipo de archivo”.

Debe asegurarse de que la variable de entorno PATH no contenga ambos archivos python.exe (agregue el que está utilizando actualmente para ejecutar los scripts diariamente), o haga lo que Kniht sugirió con los archivos por lotes. Aparte de eso, no veo por qué no.

PD: Tengo 2.6 instalado como mi python “primario” y 3.0 como mi python “jugar” . El 2.6 está incluido en el PATH . Todo funciona bien.

Supongo que sí, tengo Python 2.4, 2.5 y 2.6 instalados uno al lado del otro en la misma computadora.

Ahora estoy empezando con python. Estoy leyendo el libro de Zed Shaw “Learn Python the Hard Way” que requiere la versión 2.x de python, pero también estoy tomando una clase que requiere python 3.x

Así que aquí está lo que hice.

  1. Descargar python 2.7
  2. ejecutar power shell (ya debería estar instalado en Windows)
  3. ejecutar python EN POWERSHELL (si no lo reconoce, vaya al paso 4)
  4. Solo si powershell no reconoce el tipo python 2.7 en lo siguiente:

“[MEDIO AMBIENTE] :: SETENVIRONMENTVARIABLE (” PATH “,” $ ENV: PATH; C: \ PYTHON27 “,” USER “)” (sin comillas)

  1. Ahora escribe python y deberías verlo decir python 2.7 blah blah blah

AHORA para python 3.x

Simple, la descarga de Python 3.x viene con Python para la aplicación de Windows. ¡Así que simplemente coloque la aplicación Python para Windows en su barra de tareas o cree un acceso directo al escritorio y listo!

Abre Python para Windows para 3.x

Open PowerShell para Python 2.x

¡Espero que esto ayude!

Hmm … Hice esto ahora mismo simplemente descargando Python 3.6.5 para Windows en https://www.python.org/downloads/release/python-365/ y me aseguré de que se instalara el lanzador. Luego, seguí las instrucciones para usar python 2 y python 3. Reinicie el símbolo del sistema y luego use py -2.7 para usar Python 2 y py o py -3.6 para usar Python 3. También puede usar pip2 para pip y pip Python 2 para el pit de Python 3.