www support org instalar descargar python windows python-3.x compatibility

org - python support



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

Estoy ejecutando Windows y el shell / sistema operativo ejecuta automáticamente Python en función de la configuración del registro cuando ejecuta un programa en la línea de comandos. ¿Esto se romperá si instalo una versión 2.xy 3.x de Python en la misma máquina?

Quiero jugar con Python 3 mientras sigo siendo capaz de ejecutar scripts 2.x en la misma máquina.


Antes de instalar valientemente ambos simultáneamente, tenía muchas preguntas. Si le doy python ¿irá a py3 cuando quiero py2? pip / virtualenv sucederá en py2 / 3?

Parece ser muy simple ahora.

Simplemente instale ciegamente ambos. Asegúrese de obtener el tipo correcto (x64 / x32). Mientras / 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 de arriba para establecer la ruta.

Luego ve a ambas carpetas.

Navegar a

python3.6/Scripts/

y cambie el nombre de pip a pip3.

Si pip3 ya existe, elimine el pip. Esto asegurará que solo pip se ejecute bajo python2 . Puede verificar por:

pip --version

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

pip3 install

Igualmente puede hacer lo mismo con el archivo python y otros.

¡Aclamaciones!


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 línea de comandos puede usar python para 2.7 y python3 para 3.4.


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 <script.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 dejar esto al leer este hilo (porque es lo que también necesitaba). Tengo Pythons 2.6.1 y 3.0.1 en Ubuntu y Windows. Si no funciona para usted, publique correcciones aquí.


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


Creo que hay una opción para configurar la asociación de archivos de Windows para los archivos .py en el instalador. Desmárcala y deberías estar bien.

De lo contrario, puede volver a asociar fácilmente los archivos .py con la versión anterior. La forma más sencilla es hacer clic con el botón derecho en un archivo .py, seleccionar "abrir con" / "elegir programa". 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 casilla "Utilizar siempre este programa para abrir este tipo de archivo".


Debe asegurarse de que la variable de entorno PATH no contenga los dos archivos python.exe (agregue el que está utilizando actualmente para ejecutar los scripts en el día a día), o haga lo que sugiere Kniht con los archivos por lotes. Aparte de eso, no veo por qué no.

PD: tengo 2.6 instalado como mi pitón "principal" y 3.0 como mi pitón "play" . El 2.6 está incluido en el PATH . Todo funciona bien


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. instala Python 3.x (x es cualquier versión que necesites también debes tener una versión 3.x> = 3.3)
  3. abrir símbolo del sistema
  4. escriba py -2.x para iniciar Python 2.x
  5. escriba py -3.x para iniciar Python 3.x

Estoy comenzando con Python ahora. Estoy leyendo el libro de Zed Shaw "Aprende Python a la manera difícil" que requiere la versión 2.x de python, pero también estoy tomando una clase que requiere Python 3.x.

Entonces esto es lo que hice.

  1. Descargar python 2.7
  2. ejecutar power shell (ya debería estar instalado en Windows)
  3. ejecuta python IN POWERSHELL (si no lo reconoce, ve al paso 4)
  4. Solo si powershell no reconoce Python 2.7 escriba lo siguiente:

"[MEDIO AMBIENTE] :: SETENVIRONMENTVARIABLE (" RUTA "," $ ENV: RUTA; C: / PYTHON27 "," USUARIO ")" (sin comillas externas)

  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 inserta la aplicación Python para Windows en tu barra de tareas, o crea un acceso directo al escritorio y ¡listo!

Abra Python para Windows para 3.x

Open Powershell para python 2.x

¡Espero que esto ayude!


Estoy usando 2.5, 2.6 y 3.0 desde el intérprete de comandos con scripts de un lote de línea 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óquelos en algún lugar de su RUTA. Copie el archivo de la versión menor preferida (es decir, la última) a 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 asociación de archivos de Windows. Para eso necesitarás un programa iniciador que lea el #! línea, y luego asociar eso con los archivos .py y .pyw.


Intenta usar Anaconda.

Usando el concepto de entornos Anaconda, supongamos que necesita Python 3 para aprender programación, pero no quiere borrar su entorno 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 simple de lo que parece, eche un vistazo a la página de introducción aquí: Primeros pasos con Anaconda

Y luego, para manejar su problema específico de tener las versiones 2.xy 3.x funcionando una al lado de la otra, consulte: Administración de las versiones de Python con Anaconda


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

Si desea cambiar esta asociación manualmente, 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 programa liviano asociado con archivos .py y .pyw que buscaría una línea "shebang" (similar a Linux y otros) en la primera línea, e iniciar Python 2.xo 3.x según sea necesario. Consulte la publicación de blog "A Python Launcher for Windows" para obtener más información.


La solución oficial para la coexistencia parece ser Python Launcher para Windows , PEP 397 que se incluyó en Python 3.3.0 . Al instalar la liberación, se py.exe pyw.exe py.exe y pyw.exe en %SYSTEMROOT% ( C:/Windows ), que luego se asocia con las pyw comandos py y pyw , respectivamente.

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

Ejecutar scripts llamándolos directamente desde la línea de comandos los enrutará a través del iniciador y analizará el shebang (si existe). También puede llamar explícitamente al iniciador y usar los modificadores: 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

Por lo que sé, Python se escapa de la línea de comando usando la variable PATH en lugar de una configuración de registro.

Entonces, si apunta a la versión correcta en su RUTA, la usará. Recuerde reiniciar el símbolo del sistema para usar la nueva configuración de RUTA.


Puede tener ambos instalados.

Debes escribir delante de tu script:

#!/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 ... delante de su script


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

simplemente cambie el nombre de uno de los en mi caso en renombrado a python3.exe

así que cuando ejecuto python ejecutará python.exe witch es 2.7 y cuando ejecuto python3 ejecutará python3.exe witch es 3.6

Tenga en cuenta que lo mismo debe ser común con las secuencias de comandos pip.


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

  1. instalar Python 2.x
  2. instalar Python 3.x
  3. Comience Powershell
  4. Escriba Python -2 para iniciar Python 2.x
  5. Escriba Python -3 para iniciar Python 2.x

El Python Launcher para Windows se incrustó en Python desde la Versión 3.3, como se prometió en 2011 cuando el Stand por primera vez hizo su debut:

Lanzador de Python para Windows