Entornos virtuales en Python

Cuando trabajamos con Python, normalmente utilizamos una serie de módulos como apoyo.

Cada una de estas dependencias o módulos se utiliza en una determinada versión, desacoplar estas versiones es muy importante puesto que puede modificar el comportamiento de nuestras aplicaciones.

Los entornos virtuales de Python nos ayudan en dicha tarea.

Requisitos:

  • Python
  • Pip

Entornos virtuales

La creación de un entorno virtual se realiza haciendo uso del comando virtualenv.

En caso de no tener instalado “virtualenv”, lo instalamos:

❯ pip install virtualenv

Creación de un entorno virtual, llamado venv

❯ python -m venv venv

Para utilizar el entorno virtual creado:

source venv/bin/activate

Si listamos las dependencias o módulos instalados:

❯ pip list
Package    Version
---------- -------
pip        21.2.3
setuptools 57.4.0

Fichero de dependencias

El fichero de dependencias requeriments.txt posee el listado de módulos necesarios para nuestra aplicación.

Creación de fichero de requerimientos

Partiendo de nuestro entorno virtual iniciado, vamos a instalar una libreria de forma manual, para este ejemplo voy a utilizar la librería pandas.

❯ pip install pandas

Si ahora listamos las librerias, veremos que se ha añadido la libreria pandas y sus dependencias:

❯ pip list
Package         Version
--------------- -------
numpy           1.23.0
pandas          1.4.3
pip             21.2.3
python-dateutil 2.8.2
pytz            2022.1
setuptools      57.4.0
six             1.16.0

Una vez tengamos claras las dependencias que forman nuestro entorno, usaremos el comando freeze:

❯ pip freeze > requirements.txt

❯ cat requirements.txt 
numpy==1.23.0
pandas==1.4.3
python-dateutil==2.8.2
pytz==2022.1
six==1.16.0

Instalación de las depedencias

La instalación de dependencias se realizará de forma automática, haciendo uso del comando pip install.

❯ pip install -r requirements.txt

Desactivar el entorno virtual

La desactivación del entorno virtual se realiza haciendo uso del comando deactivate.

❯ deactivate 

Ver también