Hago la mayor parte de mi programació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 Python 2.xy 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 programas mencionados manejar múltiples versiones de Python instaladas a la vez? He buscado durante horas y horas cómo hacer esto en vano.
Gracias.
Respuestas:
Descubrí 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í trabajo 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 en doble clic):
Para iniciar un script en un intérprete en particular, agregue el siguiente shebang (comienzo del script):
Para ejecutar un script con un intérprete específico, use el siguiente comando de solicitud:
Para iniciar un intérprete específico:
Para iniciar el intérprete predeterminado (definido por la variable PY_PYTHON):
Recursos
Documentación: Uso de Python en Windows
PEP 397 - Lanzador de Python para Windows
fuente
c:\python35;c:\python35\scripts;c:\python27\scripts;
. Esto permite el uso depip2
/pip3
, yeasy_install-2.7
/ eneasy_install-3.5
lugar depip
yeasy_install
.py -m pip install ...
. Agregue interruptores despuéspy
para elegir bajo qué Python ejecutar pip como se indicó anteriormente.Lo que hice fue descargar 2.7.6 y 3.3.4. Python 3.3.4 tiene la opción de agregarle la ruta en la variable de entorno para que así se haya hecho. Básicamente, simplemente agregué manualmente Python 2.7.6.
Cómo...
Inicio> en el tipo de búsqueda en el entorno, seleccione "Editar variables de entorno en su cuenta" 1
Desplácese hacia abajo hasta Ruta, seleccione ruta, haga clic en editar.
Añadir C: \ Python27; por lo que debería tener rutas a ambas versiones de Python allí, pero si no lo hace, puede editarlo fácilmente para que lo haga ..... C: \ Python27; C: \ Python33;
Navegue a la carpeta Python27 en C: \ y cambie el nombre de una copia de python.exe a python2.exe
Navegue a la carpeta Python34 en C: \ y cambie el nombre de una copia de python.exe a python3.exe
Prueba: abra el símbolo del sistema y escriba python2 .... BOOM! Python 2.7.6. salir
Prueba: abra el símbolo del sistema y escriba python3 .... BOOM! Python 3.4.3. salir
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)
fuente
Tengo múltiples versiones en windows. Solo cambio el nombre exe de la versión a la que no estoy predeterminado.
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
fuente
pip3
ypip3.4
. (también lo incluye comopip
, pero creo que eliminarlo debería resolver cualquier conflicto con python2). En realidad, no tengoC:\Python34\Scripts
en miPath
, así que no he tenido ningún problema relacionado con pip ...Si usa Anaconda Python, puede instalar fácilmente varios entornos.
Digamos que tenía instalado Anaconda Python 2.7 y quería un entorno python 3.4:
Luego para activar el entorno:
Y a deactive:
(Con Linux, deberías usar
source activate py34
).Enlaces:
Descargar Anaconda Python
Instrucciones para ambientes
fuente
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 de Windows.
Instale sus dos versiones binarias en cualquier lugar que desee.
Ejecutando simplemente el comando,
python
el ejecutable que se cumple por primera vez en PATH será elegido para el lanzamiento. En otras palabras, agregue los directorios de Python manualmente. El que agregue primero se seleccionará cuando escribapython
. Los programas de Python consecutivos (orden creciente de que sus directorios se coloquen en PATH) se elegirán de la siguiente manera:python
python
etc.No importa el orden de "pitones" puedes:
En mi ejemplo, primero instalé Python 2.7.14 y Python 3.5.3. Así es como mi variable PATH comienza con:
RUTA = C: \ Archivos de programa \ Microsoft MPI \ Bin \; C: \ Python27; C: \ Archivos de programa \ Python_3.6 \ Scripts \; C: \ Archivos de programa \ Python_3.6 \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Archivos de programa (x86) \ Archivos comunes \ Intel \ Shared
...
Tenga en cuenta que Python 2.7 es el primero y Python 3.5 el segundo.
python
comando en ejecución lanzará Python 2.7 (si Python 3.5 el mismo comando lanzaría Python 3.5).py -2
inicia Python 2.7 (porque sucede que la segunda Python es Python 3.5, que es incompatible conpy -2
). La ejecuciónpy -3
inicia Python 3.5 (porque es Python 3.x)py -4
. Esto puede cambiar si / cuando se lanza la versión 4 de Python.Ahora
py -4
opy -5
etc. en las salidas de mi sistema:Requested Python version (4) not installed
oRequested Python version (5) not installed
etc.Esperemos que esto sea lo suficientemente claro.
fuente
pip
. Para cualquier otra python instalada, debe especificar manualmente la ruta, es decir.C:\Python27\Scripts\pip.py [parameters]
. (Por supuesto, como acceso directo, puede poner cualquier exe que desee en una variable de entorno).A partir de la versión 3.3, la versión de Windows tiene Python Launcher, consulte la sección 3.4. Python Launcher para Windows
fuente
Esto es lo que puedes hacer:
Instalar cmder . Abra y use Cmder como lo haría con su terminal cmd. Use el alias de comando para crear alias de comando.
Hice lo siguiente:
¡Y eso es! ;-)
fuente
set-alias python2 c:\python27\python.exe
De hecho, solo pensé en una solución interesante. Si bien Windows no le permitirá alias de programas fácilmente, en su lugar puede crear archivos por lotes renombrados que llamarán al programa actual.
En lugar de renombrar el ejecutable que romperá muchas cosas, incluido pip, cree el archivo python2.bat en el mismo directorio que python2.exe. Luego agregue la siguiente línea:
¿Qué significa esta sintaxis arcaica? Bueno, es un script por lotes, (versión de Windows de bash). % ~ 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 lo que sea el nombre de archivo. El alias será el nombre del archivo.
Lo mejor de todo, cuando se agrega a la RUTA, Windows ignora la extensión que se está ejecutando
Lanzará la versión python3 y el comando python2 lanzará la versión python2.
Por cierto, esta es la misma técnica que Spyder utiliza para agregarse a la ruta en Windows. :)
fuente
Puede instalar varias versiones de Python one machine, y durante la configuración, puede elegir que una de ellas se asocie con extensiones de archivo Python. Si instala módulos, habrá diferentes paquetes de instalación para diferentes versiones, o puede elegir a qué versión desea apuntar. Como generalmente se instalan en el directorio de paquetes del sitio 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. Hasta donde yo sé, 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 que lo haga.
fuente
Lo que hice en mi propia computadora con Windows donde tengo instalados Python 2.7 y Python 3.4 es que escribí un archivo .bat simple en el mismo directorio que mis archivos Python.exe. Se ven algo así como
El% * le permite agregar argumentos (archivos Python) después. Creo que / k mantiene el indicador abierto después de que termina de ejecutar el script. Luego lo guardo como python27.bat Luego voy a mi directorio de Python 3 y hago un archivo bat allí. Ahora en mi línea de comando puedo escribir
O
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.
Recibí mi respuesta de aquí
fuente
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 instale la última versión de python:
2) Luego active Python3
3) Instale el kernel:
Si tiene instalado Python 3 y desea instalar 2, cambie el 2 y el 3 anteriores. Cuando abre un nuevo cuaderno, ahora puede elegir entre Python 2 o 3.
fuente
Verifique las variables de entorno de su sistema después de instalar Python, los directorios de python 3 deben ser primero en su variable PATH, luego python 2.
Cualquier variable de ruta que coincida primero es la que usa Windows.
Como siempre, py -2 lanzará python2 en este escenario.
fuente
Encontré ese problema yo mismo e hice mis lanzadores en un .bat para que pudieras elegir la versión que deseas 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
Para Python3
Guárdelos como .bat y siga las instrucciones dentro.
fuente
Instale el que más usa (3.3 en mi caso) sobre el otro. Eso obligará a IDLE a usar el que quieras.
Alternativamente (desde python3.3 README):
Instalar múltiples versiones
En los sistemas Unix y Mac, si tiene la intención de instalar varias versiones de Python utilizando el mismo prefijo de instalación (argumento de prefijo para el script de configuración), debe tener cuidado de que su ejecutable principal de Python no se sobrescriba con la instalación de una versión diferente. Todos los archivos y directorios instalados usando "make altinstall" contienen la versión mayor y menor 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 tiene la intención de instalar varias versiones utilizando el mismo prefijo, debe decidir qué versión (si la hay) es su versión "primaria". Instale esa versión usando "make install". Instale todas las demás versiones utilizando "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 compilación 2.7 y "make altinstall" en los demás.
fuente
Solo tuve que instalarlos. Luego utilicé el software gratuito (y portátil) en http://defaultprogramseditor.com/ en "Configuración de tipo de archivo" / "Menú contextual" / search: "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 archivo de sus respectivas versiones en la ruta del programa. Ahora solo tengo que hacer clic derecho en el archivo .py y elegir qué IDLE quiero usar. Puede hacer lo mismo con intérpretes directos si lo prefiere.
fuente
Solo funciona si está ejecutando su código en su IDE de Python
Tengo Python 2.7 y Python 3.3 instalados en mi sistema operativo Windows. Si intento iniciar un archivo, generalmente se abrirá en el IDE de Python 2.7. La forma en que resolví este problema fue cuando elijo ejecutar mi código en Python 3.3, abro Python 3.3 IDLE (Python GUI), selecciono el archivo, abro mi archivo con el IDLE y lo guardo. Luego, cuando ejecuto mi código, se ejecuta en IDLE con el que lo abrí actualmente. Funciona al revés con 2.7.
fuente
He instalado Python 2.7.13 y Python 3.6.1 en Windows 10pro y recibí el mismo "error grave" cuando probé pip2 o pip3.
Lo que hice para corregir esto fue ir a la ubicación de python.exe para los archivos python 2 y python 3 y crear una copia de cada uno, luego cambié el nombre de 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.
fuente
Si no puede hacer que nada funcione, abra un intérprete en la versión que elija (prefiero usar iPython) y:
Utiliza cualquier versión de Python con la que esté operando actualmente. Funciona bien para un solo script, pero se saldrá rápidamente de control si hay muchos scripts que ejecute, 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 crear alias para diferentes versiones de Python a la Linux?
fuente