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