Damián De Luca - Capacitación & Desarrollo Web

Entornos virtuales en Python

Python

Uno de los conceptos clave que debemos entender cuando trabajamos con Python es el uso de entornos virtuales. Esta característica nos permite trabajar de manera más eficiente y organizada, evitando conflictos entre dependencias de diferentes proyectos y manteniendo un control adecuado sobre las versiones de las bibliotecas que utilizamos.

¿Qué es un entorno virtual?

Un entorno virtual en Python es un espacio aislado en el cual podemos instalar bibliotecas y dependencias sin afectar el sistema global ni otros proyectos. Funciona creando una copia del intérprete de Python y vinculando las bibliotecas específicas de cada proyecto dentro de ese entorno, en lugar de hacerlo de manera global en el sistema.

Imaginemos que tienes dos proyectos:

Si no utilizamos entornos virtuales, instalar la versión 4.0 de Django en nuestro sistema sobrescribiría la versión 3.2, lo que podría romper tu Proyecto A. Con los entornos virtuales, contamos con la posibilidad de crear un entorno independiente para cada proyecto, asegurando que cada uno funcione con las versiones específicas de las bibliotecas que necesita.

¿Por qué existen los entornos virtuales?

Los entornos virtuales existen principalmente por dos razones:

  1. Aislamiento de dependencias. Ayudan a evitar conflictos entre versiones de bibliotecas y dependencias entre proyectos. Cada entorno virtual tiene su propio espacio para instalaciones, lo que garantiza que un proyecto no afecte a otro.
  2. Reproducibilidad. Facilitan la creación de proyectos reproducibles en otros sistemas. Al usar un entorno virtual, puedes compartir un archivo como requirements.txt o pyproject.toml con las dependencias de tu proyecto, permitiendo que otros desarrolladores instalen exactamente las mismas versiones de las bibliotecas.

Ventajas de usar entornos virtuales

Al usar entornos virtuales, Tenemos algunas ventajas que resultan muy importantes a la hora de desarrollar. Analicemos 4 puntos clave a continuación:

1. Aislamiento. Cada proyecto tiene su propio entorno, por lo que podemos mantener varias versiones de una misma biblioteca sin conflictos.

2. Entornos limpios. El entorno global de Python queda libre de instalaciones innecesarias, permitiendo que se mantenga ordenado y con un mejor rendimiento.

3. Reproducibilidad. Compartir un archivo de dependencias permite que otros desarrolladores o servidores de despliegue puedan replicar el entorno exacto de nuestro proyecto.

4. Flexibilidad. Podemos probar distintas versiones de bibliotecas en proyectos diferentes sin temor a romper la configuración de tu sistema global.

¿Cuándo usarlos?

Es recomendable usar entornos virtuales en proyectos en Python, especialmente cuando:

En palabras sencillas, en proyectos que requieren de librerías externas es muy recomendable optar por trabajar con entornos virtuales. No hacerlo pone en riesgo la compatibilidad y estabilidad de lo que estamos desarrollando, debido a la interacción entre dependencias.

¿Cómo crear y usar un entorno virtual?

1. Creación de un entorno virtual

Crear un entorno virtual en Python puede tener alguna diferencia según la versión y el sistema operativo en el cual trabajemos. Por general, en la actualidad se utiliza el módulo venv, que viene incluido en las versiones modernas de Python (a partir de la 3.3).

En Windows, posicionados en la carpeta del proyecto, desde la línea de comando podríamos escribir:

python -m venv nombre_del_entorno

Por ejemplo, si deseamos crear un entorno virtual llamado mi_entorno, ejecutaríamos:

python -m venv mi_entorno

2. Activación del entorno virtual

Una vez creado, es necesario activar el entorno virtual para empezar a trabajar en él. Dependiendo de nuestro sistema operativo, los comandos son ligeramente diferentes:

source mi_entorno/bin/activate
mi_entorno\Scripts\activate

3. Instalación de bibliotecas en el entorno

Una vez activado el entorno, podremos instalar las bibliotecas necesarias utilizando pip, que funcionará dentro del entorno aislado.

El ejemplo de esto sería:

pip install nombre_de_la_biblioteca

Está claro que nombre_de_la_biblioteca debe ser reemplazado por el nombre de la librería que se desea instalar en el entorno.

Desactivar el entorno

Cuando terminamos de trabajar en el proyecto o si necesitamos cambiar de entorno, podemos desactivar el entorno activo con el siguiente comando:

deactivate

Esto devolverá tu terminal al entorno de Python global.

Entornos virtuales en Python: conclusión

Los entornos virtuales son una herramienta indispensable en el desarrollo moderno con Python. Nos permiten trabajar de manera organizada, evitando conflictos de versiones y facilitando la reproducibilidad de nuestros proyectos. Si aún no los has integrado en tu flujo de trabajo, ahora es el momento de empezar.

Usarlos te ahorrará tiempo, dolores de cabeza y hará que tus proyectos sean más fáciles de mantener y compartir con otros desarrolladores.

Antes de comenzar a utilizar entornos virtuales es muy recomendable tener conocimientos de Python, gestión de paquetes y librerías y comprender como movernos entre las rutas sistema operativo en el que trabajamos. Podremos encontrar más información sobre los entornos virtuales en la documentación de Python: venv — Creation of virtual environments.

Si te quedan dudas o te interesa saber más sobre como usar entornos virtuales en Python déjame un comentario o escríbeme un mensaje.

Salir de la versión móvil