Saltar al contenido

¿Cómo uso una versión diferente de Python en venv de la biblioteca estándar? (¡No virtualenv!)

Mantén la atención porque en este tutorial encontrarás la solución que buscas.

En Linux / Mac, puede instalar fácilmente varias versiones de Python junto a la principal y puede usar el paquete venv de la biblioteca estándar para crear entornos virtuales a partir de cada versión> = 3.3.

Crear venv

$ python3.3 -m venv myvenv_foo  # Create a python3.4 venv named 'myvenv_foo'
$ python3.4 -m venv myvenv_bar  # Create a python3.4 venv named 'myvenv_bar'
$ python3.5 -m venv myvenv_baz  # Create a python3.5 venv named 'myvenv_baz'
# etc...

Activar venv

source myvenv_foo/bin/activate  # Activates venv 'myvenv_foo'

Desactivar venv

deactivate

Aviso: python vs pythonX.X

Si tiene varias versiones de Python instaladas, puede acceder a cada una agregando el número de versión al comando, por ejemplo python3.5, python3.6, etc. Pero tenga en cuenta que cuando activa un venv, lo vincula a la versión limpia / sin versión python comando, mientras esté activado. P.ej:

$ python -V # Use the *clean* 'python' command to show the main version of the OS.
Python 2.7.6 
$ python3.5 -m venv myvenv_foo # Create a new venv from 'python3.5'.
$ source myvenv_foo/bin/activate # Activate venv.
$ python -V # The *clean* 'python' command is now bound to your activated venv.
Python 3.5.2 
$ deactivate  # Deactivate venv.
$ python -V  # Now the *clean* command is bound back to the main version.
Python 2.7.6 

Nota

Sugiero usar Pipenv para crear / manejar entornos virutales sobre el venv paquete.

De los documentos oficiales:

Administrar múltiples entornos virtuales directamente puede volverse tedioso, por lo que el tutorial de administración de dependencias presenta una herramienta de nivel superior, Pipenv, que administra automáticamente un entorno virtual separado para cada proyecto y aplicación en la que trabaja.

Esta es una muy buena pregunta ya que hay varios módulos / bibliotecas de Python (incorporados y de terceros) con nombres y propósitos similares. Puede simpatizar completamente con la confusión de OP.

Realmente hay dos comportamientos / responsabilidades diferentes:

1). La capacidad de cambiar entre diferentes versiones de (Sistema) Python Interpreter, por ejemplo. 2.7.10 o 3.5.0 etc

2). La capacidad de crear entornos virtuales (que es solo una carpeta local que contiene toda la plomería (binarios y bibliotecas) para una versión particular de Python. Puedo pensar en esto como una instancia local congelada de una versión particular de Python. Esencialmente es una Instalación de Python liviana y autónoma.

Un módulo como pyvenv proporciona 2) sobre. Le permitirá crear un entorno virtual configurado en la versión de Python que se utilizó para crearlo.

$ python --version
Python 3.5.0
$ pyvenv myenv   # myenv is now a local environment using Python 3.5.0

Para obtener más información sobre pyvenv, consulte biblioteca / venv

Un módulo como pyenv (los nombres son confusos, ¿verdad? Aviso, pyenv y no pyvenv) por otro lado, controla qué VERSIÓN de Python está ejecutando básicamente su sistema. Esto proporciona 1) sobre. Entonces, cuando no se ejecuta un entorno virtual particular a través de pyvenv, etc., esta es la versión “global” en uso. De hecho, es un poco más complicado que eso (ya que también puede configurar la configuración local, etc.), pero esencialmente eso es suficiente para esta discusión.

Para obtener más información sobre pyenv, consulte github.com/yyuu/pyenv

Supongamos que quiero ejecutar las versiones 2.7.10 y 3.5.0 de Python, luego usaría pyenv para instalar estas dos versiones (aquí, elegí como globales), y puedo ver esto usando:

$ pyenv versions
  system
* 2.7.10 (set by ~/.pyenv/version)
* 3.5.0 (set by ~/.pyenv/version)

$ python --version
Python 3.5.0

$ which python
~/.pyenv/shims/python

$ python2.7 --version
Python 2.7.10

Sí, hay varias alternativas destacadas para cada uno de los módulos / bibliotecas mencionados anteriormente. Discusiones acaloradas sobre Reddit / SOF, etc. detallando y discutiendo cuál es mejor. Muchos de ellos hacen cosas muy similares …

Es simplemente imposible. Para crear python venv de una versión específica de Python, necesitamos esta versión específica.

Obviamente, el intérprete de Python no contiene todas las versiones anteriores. Python 3.4.1 no contiene el ejecutable de Python 2.7.8 en ningún lugar dentro.

Si tienes alguna desconfianza o forma de prosperar nuestro sección eres capaz de añadir una ilustración y con placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *