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:
- Proyecto A que usa la biblioteca
Django
en su versión 3.2. - Proyecto B que usa
Django
, pero en su versión 4.0.
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:
- 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.
- Reproducibilidad. Facilitan la creación de proyectos reproducibles en otros sistemas. Al usar un entorno virtual, puedes compartir un archivo como
requirements.txt
opyproject.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:
- Estamos desarrollando una aplicación que utiliza bibliotecas externas.
- Trabajamos en múltiples proyectos que requieren diferentes versiones de las mismas bibliotecas.
- Necesitamos garantizar que otros desarrolladores puedan reproducir tu entorno sin problemas.
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:
- En Linux/MacOS:
source mi_entorno/bin/activate
- En Windows:
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.