Estoy ejecutando Windows y el shell / OS ejecuta Python automáticamente en función de la configuración del registro cuando ejecuta un programa en la línea de comandos. ¿Se romperá esto si instalo una versión 2.xy 3.x de Python en la misma máquina?
Quiero jugar con Python 3 sin dejar de ejecutar scripts 2.x en la misma máquina.
/usr/bin/python
y Python 3.3 en/usr/bin/python3
. También da diferentes nombres para Pip e IPython de Python3. Muy útil.Respuestas:
La solución oficial para la convivencia parece ser Python Launcher para Windows , PEP 397, que se incluyó en Python 3.3.0 . Instalar los volcados de lanzamiento
py.exe
y lospyw.exe
lanzadores en%SYSTEMROOT%
(C:\Windows
), que luego se asocia conpy
ypyw
scripts, respectivamente.Para utilizar el nuevo iniciador (sin configurar manualmente sus propias asociaciones), deje habilitada la opción "Registrar extensiones". No estoy muy seguro de por qué, pero en mi máquina dejó Py 2.7 como "predeterminado" (del iniciador).
La ejecución de scripts llamándolos directamente desde la línea de comando los enrutará a través del iniciador y analizará el shebang (si existe). También puede llamar explícitamente a los interruptores de lanzadores y de uso:
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
fuente
py.exe
debería iniciarse de forma predeterminada Py3 sobre Py2 cuando no se especifica una versión y el archivo no contiene una línea shebangwhere.exe pip
. Creo que el instalador de Python 3 instala unpip3
alias para su pip, pero también podría hacer algo comopy -3 -m pip install requests
creo.Aquí está mi configuración:
C:\Python34
(la ruta de instalación predeterminada) y cambie python.exe a python3.exeC:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;
Ahora en la línea de comando puedes usar
python
para 2.7 ypython3
3.4.fuente
pip
en cli?pip
ypip3
respectivamente.Puedes tener ambos instalados.
Deberías escribir esto delante de tu script:
o, eventualmente ...
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:
Lo mismo: delante de tu guión.
fuente
Desde la versión 3.3, Python introdujo la utilidad Launcher para Windows https://docs.python.org/3/using/windows.html#python-launcher-for-windows .
Entonces, para poder usar múltiples versiones de Python:
fuente
py -3 filename.py
.Estoy usando 2.5, 2.6 y 3.0 del shell con scripts por lotes de una línea del formulario:
Nómbralos
pythonX.Y.bat
y ponlos en algún lugar de tu RUTA. Copie el archivo para la versión menor preferida (es decir, la última) enpythonX.bat
. (Ejcopy python2.6.bat python2.bat
.) Entonces puedes usarlopython2 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á un programa de
#!
inicio que lea la línea y luego lo asocie con archivos .py y .pyw.fuente
Cuando se agrega tanto a las variables de entorno habrá un haber un conflicto, porque los dos ejecutables tienen el mismo nombre:
python.exe
.Solo cambia el nombre de uno de ellos. En mi caso, le cambié el nombre a
python3.exe
.Entonces, cuando corro
python
, se ejecutará,python.exe
que es 2.7 y cuando corropython3
, se ejecutará,python3.exe
que es 3.6fuente
Fatal error in launcher: Unable to create process using '"c:\users\<my_username>\appdata\local\programs\python\python37-32\python.exe" "C:\Users\<my_username>\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe" '
.Aqui tienes...
winpylaunch.py
Acabo de decir esto al leer este hilo (porque es lo que también necesitaba). Tengo Pythons 2.6.1 y 3.0.1 tanto en Ubuntu como en Windows. Si no funciona para ti, publica correcciones aquí.
fuente
sys.exit(process.returncode)
para propagar el estado de salida del script invocado a la persona que llama.Hasta donde sé, Python se escapa de la línea de comandos usando la variable PATH en lugar de una configuración de registro.
Entonces, si señala la versión correcta en su RUTA, la usará. Recuerde reiniciar el símbolo del sistema para usar la nueva configuración de RUTA.
fuente
La instalación de Python asocia normalmente
.py
,.pyw
y.pyc
los archivos con el intérprete de Python. Por lo tanto, puede ejecutar un script de Python haciendo doble clic en el Explorador o escribiendo su nombre en una ventana de línea de comandos (por lo que no es necesario escribirpython scriptname.py
, simplementescriptname.py
lo hará).Si desea cambiar manualmente esta asociación, puede editar estas claves en el registro de Windows:
Lanzador de Python
La gente ha estado trabajando en un lanzador de Python para Windows: un programa ligero asociado con
.py
y.pyw
archivos que busque una línea "tinglado" (similar a Linux y otros) en la primera línea, y lanzar Python 2.x 3.x o como necesario. Consulte la publicación del blog "A Python Launcher for Windows" para obtener más información.fuente
Intenta usar Anaconda.
Usando el concepto de entornos Anaconda, digamos que necesita Python 3 para aprender programación, pero no desea borrar su entorno Python 2.7 actualizando Python. Puede crear y activar un nuevo entorno llamado "serpientes" (o lo que desee) e instalar la última versión de Python 3 de la siguiente manera:
Es más simple de lo que parece, eche un vistazo a la página de introducción aquí: Introducción a Anaconda
Y luego, para manejar su problema específico de tener la versión 2.xy 3.x ejecutándose lado a lado, consulte: Administración de versiones de Python con Anaconda
fuente
Aquí se explica cómo ejecutar Python 2 y 3 en la misma máquina
El lanzador de Python para Windows se integró en Python desde la Versión 3.3, como se prometió en 2011, cuando debutó por primera vez:
Python Launcher para Windows
fuente
Aquí hay una forma ordenada y limpia de instalar Python2 y Python3 en Windows.
https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-windows-10-add-python-path-281e7eae62a
Mi caso: tuve que instalar Apache cassandra. Ya tenía Python3 instalado en mi unidad D: . Con un montón de trabajo de desarrollo en proceso, no quería estropear mi instalación de Python3. Y, necesitaba Python2 solo para Apache cassandra.
Entonces tomé los siguientes pasos:
C:\Python27;C:\Python27\Scripts
)python2 --version
) y Python 3 (python --version
).Entonces, mi instalación de Python3 permaneció intacta.
fuente
Creo que hay una opción para configurar la asociación de archivos de Windows para archivos .py en el instalador. Desmarque y debería estar bien.
De lo contrario, puede volver a asociar fácilmente los archivos .py con la versión anterior. La forma más simple es hacer clic 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 de verificación "usar siempre este programa para abrir este tipo de archivo".
fuente
Debe asegurarse de que la variable de entorno PATH no contenga ambos archivos python.exe (agregue el que está utilizando actualmente para ejecutar 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 "principal" y 3.0 como mi python "play" . El 2.6 está incluido en la RUTA . Todo funciona bien
fuente
Antes de instalar valientemente ambos simultáneamente, tenía muchas preguntas. Si doy python, ¿irá a py3 cuando quiera py2? pip / virtualenv sucederá bajo 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 .
Reemplace la x en el comando anterior para establecer la ruta.
Luego ve a ambas carpetas.
Navegar a
y cambie el nombre de pip a pip3.
Si ya existe pip3, elimine el pip. Esto asegurará que solo pip se ejecutará en python2 . Puedes verificar por:
En caso de que quiera usar pip con python3 , simplemente use
De manera similar, puede hacer lo mismo con el archivo python y otros.
¡Salud!
fuente
Fácil, después de instalar ambas versiones de Python, agregue las rutas a las variables de entorno; vea . Luego vaya a las carpetas python 2 y python 3 y cámbieles el nombre a python2 y python3 respectivamente como se muestra y . Ahora en cmd, escriba python2 o python3 para usar la versión requerida .
fuente
Supongo que sí, tengo Python 2.4, 2.5 y 2.6 instalados uno al lado del otro en la misma computadora.
fuente
Estoy empezando con Python ahora. 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.
"[ENVIRONMENT] :: SETENVIRONMENTVARIABLE (" PATH "," $ ENV: PATH; C: \ PYTHON27 "," USER ")" (sin comillas externas)
AHORA para python 3.x
La descarga simple de python 3.x viene con la aplicación python para Windows. ¡Así que simplemente fije la aplicación Python para Windows a su barra de tareas, o cree un acceso directo al escritorio y listo!
Abra Python para Windows para 3.x
Abra Powershell para python 2.x
¡Espero que esto ayude!
fuente
Hmm ... Hice esto ahora mismo descargando Python 3.6.5 para Windows en https://www.python.org/downloads/release/python-365/ y me aseguré de que el lanzador estuviera instalado. 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
opy -3.6
Python 3. También puede usarpip2
Python 2pip
ypip
Python 3pip
.fuente
Tuve el mismo problema en el que quería usar python3 para la mayoría del trabajo, pero IDA pro requería python2. Entonces, esto es lo que hice.
Primero creé 3 variables en la variable de entorno del usuario de la siguiente manera:
Ahora agregué
RUTA variable. Entonces, básicamente diciendo que todo lo que contiene "PYTHON_ACTIVE" es la pitón activa. Cambiamos programáticamente los contenidos de "PYTHON_ACTIVE" para cambiar la versión de Python.
Aquí está el script de ejemplo:
Este script toma la versión de Python como entrada y, en consecuencia, copia HOME_PYTHON27 o HOME_PYTHON38 en PYTHON_ACTIVE. Cambiando así la versión global de Python.
fuente