Los entornos virtuales se pueden describir como directorios de instalación aislados. Este aislamiento te permite localizar la instalación de las dependencias de tu proyecto, sin obligarte a instalarlas en todo el sistema.
Imagina que tienes dos aplicaciones, App1 y App2. Ambos usan el paquete Pak, pero requieren versiones diferentes. Si instala Pak versión 2.3 para App1, no podrá ejecutar App2 porque requiere la versión 3.1.
Aquí es donde los entornos virtuales son útiles.
Beneficios:
- Puedes tener varios entornos, con varios conjuntos de paquetes, sin conflictos entre ellos. De esta manera, los requisitos de diferentes proyectos se pueden satisfacer al mismo tiempo.
- Puedes lanzar fácilmente tu proyecto con sus propios módulos dependientes.
Aquí hay dos formas en las que puede crear entornos virtuales Python.
Virtualenv
virtualenv es una herramienta que se utiliza para crear entornos Python aislados. Crea una carpeta que contiene todos los ejecutables necesarios para usar los paquetes que necesitaría un proyecto de Python.
Puedes instalarlo con pip
:
pip install virtualenv
Verifica la instalación con el siguiente comando:
virtualenv --version
Crear un entorno
Para crear un entorno virtual utiliza:
virtualenv --no-site-packages my-env
Esto crea una carpeta en el directorio actual con el nombre del entorno (my-env/
). Esta carpeta contiene los directorios para instalar módulos y ejecutables de Python.
También puedes especificar la versión de Python con la que quieres trabajar. Simplemente usa el argumento --python=/ruta/a/la/version/de/python
. Por ejemplo, python2.7:
virtualenv --python=/usr/bin/python2.7 my-env
Lista de entornos
Puedes enumerar los entornos disponibles con:
lsvirtualenv
Activar un entorno
Antes de utilizar el entorno, debes activarlo:
source my-env/bin/activate
Esto asegura que solo se usen los paquetes bajo my-env/
.
Notarás que el nombre del entorno se muestra a la izquierda de la línea de comandos. De esta forma puedes ver cuál es el entorno activo.
Instalar paquetes
Puede instalar paquetes uno por uno o configurando un archivo requirements.txt
para tu proyecto.
pip install algun-paquete
pip install -r requirements.txt
Si quieres crear un archivo requirements.txt
a partir de los paquetes ya instalados, ejecuta el siguiente comando:
pip freeze > requirements.txt
El archivo contendrá la lista de todos los paquetes instalados en el entorno actual y sus respectivas versiones. Esto te ayudará a lanzar tu proyecto con sus propios módulos dependientes.
Desactivar un entorno
Si has terminado de trabajar con el entorno virtual, puedes desactivarlo con:
deactivate
Esto te devuelve al intérprete de Python predeterminado del sistema con todas sus bibliotecas instaladas.
Eliminar un entorno
Simplemente elimina la carpeta del entorno.
Conda
Conda
es una gestión de paquetes, dependencias y entornos para muchos lenguajes, incluido Python.
Para instalar Conda, sigue estas instrucciones.
Crear un entorno
Para crear un entorno virtual, use:
conda create --name my-env
Conda creará la carpeta correspondiente dentro del directorio de instalación de Conda.
También puedes especificar con qué versión de Python quieres trabajar:
conda create --name my-env python=3.6
Lista de entornos
Puedes enumerar los entornos disponibles con:
conda info --envs
Activar un entorno
Antes de utilizar el entorno, debes activarlo:
source activate my-env
Instalar paquetes
Igual que con virtualenv
.
Desactivar un entorno
Si has terminado de trabajar con el entorno virtual, puedes desactivarlo con:
source deactivate
Eliminar un entorno
Si quieres eliminar un entorno de Conda, utiliza:
conda remove --name my-env
Traducido del artículo - Python Virtual Environments Explained with Examples