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 virtualenvVerifica la instalación con el siguiente comando:
virtualenv --versionCrear un entorno
Para crear un entorno virtual utiliza:
virtualenv --no-site-packages my-envEsto 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-envLista de entornos
Puedes enumerar los entornos disponibles con:
lsvirtualenvActivar un entorno
Antes de utilizar el entorno, debes activarlo:
source my-env/bin/activateEsto 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.txtSi quieres crear un archivo requirements.txt a partir de los paquetes ya instalados, ejecuta el siguiente comando:
pip freeze > requirements.txtEl 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:
deactivateEsto 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-envConda 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.6Lista de entornos
Puedes enumerar los entornos disponibles con:
conda info --envsActivar un entorno
Antes de utilizar el entorno, debes activarlo:
source activate my-envInstalar paquetes
Igual que con virtualenv.
Desactivar un entorno
Si has terminado de trabajar con el entorno virtual, puedes desactivarlo con:
source deactivateEliminar un entorno
Si quieres eliminar un entorno de Conda, utiliza:
conda remove --name my-envTraducido del artículo - Python Virtual Environments Explained with Examples