2010-12-02 20 views
26

Estoy leyendo Cómo aprender Python The Hard Way, que usa 2. Invent Invent recientemente descubierto con Python, que usa 3.¿Cómo se cambia entre python 2 y 3, y viceversa?

¿Puedo descargar Python 3 y usarlo cuando leo Invent With Python, luego volver a cambiar a python 2 cuando quiero leer How To Learn Python The Hard Way. De ser así, ¿cómo elegiría la versión que uso?

+3

¿En qué plataforma estás? –

+5

@Matt Joiner: Esto no es un duplicado de esa pregunta. Esta pregunta se trata de configurar el entorno, no de qué versión de Python aprender. – GreenMatt

+0

Marque esta pregunta similar: http: //stackoverflow.com/questions/4301681/testing-a-python-script-in-a-specific-version/4301739#4301739 – Kabie

Respuesta

1

Sí, puedes. En mi máquina al menos (Vista), v2 y v3 tienen inactivos completamente separados que me permiten ejecutar cualquier versión que me apetezca cuando me apetezca. Así que adelante y descarga v3.

1

un par de maneras en sistemas * nix:

  • Instalar en directorios separados (por ejemplo,/usr/local/python2 y/usr/local/python3) y crear un enlace (por ejemplo,/usr/bin/python) que cambias para apuntar a cualquier ejecutable que quieras usar.
  • La misma instalación que la anterior, pero configure los comandos de python por separado (por ejemplo,/usr/bin/python2 y/usr/bin/python3) y llámelos cuando desee invocar a python. O tenga el comando python predeterminado en uno de ellos y un pythonN en el otro (N = 2 o 3, lo que no sea el predeterminado).
+0

Esto debería ser el predeterminado en cualquier paquete de Unix (y lo que 'configure' hace). –

10

depende de su sistema/plataforma ...

estoy actualmente en Ubuntu 10.10 y tener ambos 2.6 y 3.1 instalado. El sistema predeterminado python es 2.6 y python3 está instalado como un paquete adicional.

[email protected]:~$ python 
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 
[email protected]:~$ python3 
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Del mismo modo, en Windows, tengo 2.6 y 3.1 instalado (en C: \ Python26 y C: \ Python31)

fácil cambiar de un lado a otro.


también .. hay algunas diferencias sintácticas entre 2.xy 3.x que tendrá que estar al tanto de (impresión es una función, etc.).

+0

¿Cómo se cambia entre esos dos? Por ejemplo, si estoy usando gedit y quiero que el código sea 2 por un tiempo, entonces quiero trabajar en algo con 3, ¿cómo lo cambiaría para que cuando el programa se ejecute en el símbolo del sistema, será en 3 y no 2? – rayne117

+0

@rayne: Cuando llamas a 'python myprog.py' en el símbolo del sistema, usará tu versión predeterminada de Python. Entonces, para cambiar, solo tienes que llamar a la otra versión. 'python3 myprog.py' podría funcionar, o puede que tenga que hacer' C: \ Python31 \ python.exe myprog.py'. –

18

Usando 'virtualenv' puede tener diferentes entornos de Python aislados en una sola máquina. También puede cambiar en cualquier momento entre las diferentes versiones de Python Intérprete.

¿Qué es virtualenv?

Un entorno virtual es una copia de trabajo aislada de Python que le permite trabajar en un proyecto específico sin preocuparse de afectar otros proyectos. Permite múltiples instalaciones lado a lado de Python, una para cada proyecto. En realidad, no instala copias separadas de Python, pero proporciona una forma inteligente de mantener diferentes entornos de proyectos aislados.

¿Cómo instalar?

pip install virtualenv 

crear un entorno virtual para Python 2.7:

root:~# which python2.7 

/usr/bin/python2.7 

root:~# which python3.4 

/usr/local/bin/python3.4 

También se puede utilizar un intérprete de Python de su elección:

root:~# virtualenv -p /usr/bin/python2.7 Vpy27 

Running virtualenv with interpreter /usr/bin/python2.7 

New python executable in /root/Vpy27/bin/python2.7 

Also creating executable in /root/Vpy27/bin/python 

Installing setuptools, pip, wheel...done. 

para comenzar a utilizar el entorno virtual, tiene que ser activado:

root:~# source Vpy27/bin/activate 

na me del entorno virtual actual aparecerá ahora en la izquierda de la línea de comandos:

(Vpy27) root:~# python -V 
Python 2.7.3 

instalar paquetes como de costumbre, por ejemplo:

(Vpy27) root:~# pip install junos-eznc >> All pip installs done here, will be available only in this environment. 

Si ha terminado de trabajar en el entorno virtual por el momento , puede desactivarla:

(Vpy27) root:~# deactivate 

crear un entorno virtual para Python 3.4:

root:~# which python3.4 

/usr/local/bin/python3.4 

root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34 

root:~# source Vpy34/bin/activate 

(Vpy34) root:~# python -V 
Python 3.4.4 

También hay una manera de crear un entorno virtual con paquetes de sitio ya disponibles.

0

Aquí están mis 2 centavos.

Si está en un sistema basado en Unix (Ubuuntu, etc.), y actualmente tiene python 2.x. Vaya por delante y descargar el 3.x pitón de Python.org

Después de la instalación se creará un directorio independiente python3

haya terminado.

para ejecutar sus programas con el uso python2.xpython filename.py

Para ejecutar sus programas con python3.x, utilice python3 filename.py

Del mismo modo, para encender el uso python2.x y python 3.x intérprete python y python3 respectivamente.

Veo algunas de las respuestas que lo apuntan a virtualenv, no creo que sea eso lo que estaba pidiendo, virtualenv se usa para aislar entornos de Python.

2

Estoy en Windows 10 con Python 3.5 y 2.7. Usando PowerShell, así es como estoy cambiando de una versión a otra.

############################################################ 
# Switch to Python 2.7 
############################################################ 

# Remove python 3.5 from PATH 
$current_path = [Environment]::GetEnvironmentVariable("Path", "User") 
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;" 
$new_path = $current_path.replace($python3_path, "") 
[Environment]::SetEnvironmentVariable("Path", $new_path, "User") 

# Add python 2.7 to PATH 
# Run PowerShell as administrator 
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine") 
$python2_path = "C:\Python27\;C:\Python27\Scripts;" 
$new_path = $python2_path + $current_path 
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine") 

# Restart PowerShell to see change 

# Confirm change 
python --version 


############################################################ 
# Switch to Python 3.5 
############################################################ 

# Remove python 2.7 from PATH 
# Run PowerShell as administrator 
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine") 
$python2_path = "C:\Python27\;C:\Python27\Scripts;" 
$new_path = $current_path.replace($python2_path, "") 
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine") 

# Add python 3.5 to PATH 
$current_path = [Environment]::GetEnvironmentVariable("Path", "User") 
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;" 
$new_path = $python3_path + $current_path 
[Environment]::SetEnvironmentVariable("Path", $new_path, "User") 

# Restart PowerShell to see change 

# Confirm change 
python --version 

Tenga en cuenta que deberá actualizar las rutas para reflejar sus versiones de Python y su perfil de usuario.

0

En Windows, el Python launcher puede hacer esto por usted.

El artículo PEP dice:

línea Shebang análisis

Si el primer argumento de línea de comandos no se inicia con un guión ('-') carácter, se hará un intento para abrir ese argumento como un archivo y analizado en busca de una línea tinglado de acuerdo con las normas en [1] ::

#! interpreter [optional-arg] 

Así que simplemente añadir un tinglado en el comienzo de la secuencia de comandos de Python, así:

#! python3 
#coding=utf-8 

import sys 
print(sys.version) 
... 

o se puede pasar un parámetro de línea de comandos a la py.exe lanzador:

C:\Users\Administrator>py -3 my_script.py 

C:\Users\Administrator>py -2 my_script.py 
0

si está usando Windows 10 y tienen python 2.xy 3.x.

  1. Panel> sistema de control abierto y seguridad> Sistema
  2. Haga clic en Configuración avanzada del sistema.
  3. haz clic en las variables de entorno.
  4. haz clic en la ruta y edita y luego haz la ruta de acceso de la versión de Python que quieras usar arriba que no quieras usar [haciendo clic en el botón subir]
  5. reinicia powershell.
  6. python --version
1

en Windows 10 es mucho más fácil que lo que se ha dado por los usuarios anteriores.

Instale la versión en carpetas separadas, y luego vaya a la variable de entorno y agregue la ruta para ambas versiones.

Ahora, cada vez que desee ejecutar una versión en particular, simplemente cambie su orden (ruta) y muévala a la parte superior de la otra versión, y luego reinicie el cmd y escriba python esta vez, verá que solo esa versión particular de Python se ejecutará.

How to switch between python 2 and 3

Por ejemplo, en mi caso, tengo dos versiones de una serpiente pitón en anaconda (v3.0.6) y otra es Python 2.7

cuando quiera correr el 2,7 muevo a su paso por encima de la versión anaconda, como se puede ver en la captura de pantalla anterior, y moverla a continuación cuando quiero ejecutar la versión anaconda.

+0

¡¡Funcionó perfectamente !! –

0

He intentado 6 soluciones hasta ahora, como:

virtualenv --python=python py27env 
mkvirtualenv --python=python3 py3env etc.. 

utilizando también virtualenvwrapper paquete etc. Ninguno de ellos trabajaron.

Tengo Python 3.6 y Python2.7 en mi máquina con Windows 10, así que cambié el nombre de C: \ Python27 \ python.exe a python2.exe y C: \ Python36 \ python.exe a python3.exe o puede incluso use el formato python36.exe. Por supuesto C: \ Python27, C: \ Python27 \ Scripts, C: \ Python36, C: \ Python36 \ Scripts añadidos a la RUTA de variables de entorno.

(1) Para python3 sólo tiene que escribir:

python3 -m virtualenv venv3

(2) Ir a Venv carpeta, activarla con:

Scripts \ activar .bat

(3) (venv3) muestra que está activado:

(venv3) [email protected] C:\Builts\venv3 

(4) y después comprobar si realmente es 3,6:

python --version

Python 3.6.0 

Para python2:

python2 -m virtualenv venv2

Resultado:

(venv2) [email protected] C:\Builts\venv2 
python --version 
Python 2.7.9 

espero que le ayudará.

Cuestiones relacionadas