Python: Entornos virtuales

Hoy te quiero hablar de algo que creo es muy útil, seguro y práctico: Los entornos virtuales en Python.

Los entornos virtuales son grupos independientes de bibliotecas de Python, es decir, son entornos aislados. Todo lo que se instale en ellos no afectará ni se verá afectado por agentes externos.

Se suele definir un entorno virtual por cada proyecto, de forma que los paquetes instalados para un proyecto concreto no afectarán a otros proyectos, ni a los paquetes instalados a nivel del sistema operativo. Todas las dependencias de un proyecto quedan aisladas dentro del entorno virtual.

Gracias a los entornos virtuales evitamos que la instalación global de Python se vea afectada por una instalación personalizada, puesto que se crea un entorno separado para la aplicación. Este entorno separado es útil, ya que permite tener múltiples versiones de la misma biblioteca utilizadas en diferentes aplicaciones.

A partir de la versión 3.3 de Python se incluyó dentro de la biblioteca estándar el módulo venv. Dicho módulo permite definir entornos virtuales y, puesto que va incluido en la biblioteca estándar, no requiere instalación.

Usar venv es una opción totalmente válida, pero yo te recomiendo que utilices la herramienta virtualenv. El módulo venv no es más que un subconjunto de esta herramienta, por lo que virtualenv es mucho más completa. El único inconveniente es que virtualenv no viene incluida en la biblioteca estándar de Python, por lo que hay que instalarla, pero ya te adelanto que el procedimiento es muy sencillo.

Te cuento a continuación cómo instalar virtualenv.

Instalar virtualenv

Para instalar virtualenv necesitas tener instalado pip (las versiones 3.4 y posteriores de Python lo incluyen por defecto).

El comando para instalar virtualenv es muy sencillo:

pip3 install virtualenv

Como ves el proceso es simple, ahora ya podemos crear entornos virtuales. Veamos cómo.

Crear un entorno virtual

El primer paso es crear el directorio de nuestro proyecto Python:

mkdir myproject
cd myproject

El entorno virtual lo crearemos dentro del directorio, por eso me he cambiado de directorio con el comando cd.

El siguiente paso es crear el entorno virtual, para ello usamos el comando virtualenv seguido del nombre que le queremos dar al entorno:

virtualenv myEnv

El nombre del entorno puede ser el que quieras, pero yo te recomiendo que le pongas un nombre significativo. Si trabajas con varios entornos te ayudará a distinguirlos y saber en todo momento qué entorno virtual está activado.

Activar un entorno virtual

Una vez creado el entorno ya podemos usarlo, para ello hay que activarlo:

source myEnv/bin/activate

Ahora que ya está el entorno activado todos los paquetes que instales quedarán aislados dentro del mismo y podrás realizar la instalación de dichos paquetes sin necesidad de privilegios de root.

Por ejemplo, supón que quieres implementar una solución web con el framework Flask. El procedimiento sería el siguiente:

mkdir myWeb
cd myWeb
virtualenv myWebEnv
source myWebEnv/bin/activate
pip3 install flask

Flask no quedaría instalado a nivel global en el sistema, sino dentro del entrono virtual myWebEnv perteneciente al proyecto myWeb.

Fácil ¿Verdad?

Desactivar un entorno virtual

Si ya no quieres seguir utilizando el entorno virtual, bien porque quieres cambiar de entorno, o simplemente porque has terminado de trabajar en tu proyecto, debes desactivarlo para evitar instalar paquetes accidentalmente.

El comando para desactivar el entorno es muy sencillo:

deactivate

En este caso, ni siquiera es necesario estar dentro del directorio del proyecto, puedes encontrarte dentro de cualquier directorio. Tampoco hay que hacer referencia al entorno virtual que quieres desactivar. El comando deactivate desactiva el entorno que esté activo en ese momento (si es que hay alguno).

Sígueme:

2 comentarios sobre “Python: Entornos virtuales

Agrega el tuyo

Deja una respuesta

Subir ↑