2 usuarios conectados
Módulos y paquetes. Entornos virtuales (venv)
Módulos y paquetes. Entornos virtuales (venv)
Ahora vamos a explorar los
entornos virtuales en Python, específicamente utilizando el
módulo venv
que viene integrado con Python 3. Los entornos
virtuales son una práctica fundamental para aislar las dependencias de
diferentes proyectos de Python, evitando conflictos y asegurando la
reproducibilidad.
¿Qué son los Entornos Virtuales?
Un entorno virtual es un directorio aislado que
contiene una instalación de Python específica, así como todas las bibliotecas
(paquetes) que se hayan instalado en ese entorno. Esto significa que cada
proyecto puede tener sus propias dependencias, sin interferir con las
dependencias de otros proyectos o con la instalación global de Python en tu
sistema.
¿Por qué usar Entornos Virtuales?
- Aislamiento de dependencias:
Diferentes proyectos a menudo requieren diferentes versiones de las mismas
bibliotecas. Un entorno virtual permite que cada proyecto tenga sus propias
versiones sin conflictos.
- Reproducibilidad: Al
mantener las dependencias de un proyecto en un entorno virtual y, a menudo,
listarlas en un archivo
requirements.txt
, puedes recrear
exactamente el mismo entorno en otra máquina, asegurando que el proyecto
funcione de la misma manera.
- Limpieza del sistema global:
Evitas instalar paquetes directamente en la instalación global de Python, lo
que podría llevar a problemas de compatibilidad o desorden.
- Colaboración: Facilita que
los miembros de un equipo trabajen con las mismas dependencias exactas.
Uso de venv
(para Python 3):
El módulo venv
es la
herramienta estándar para crear entornos virtuales en Python 3. Aquí te
mostramos cómo usarlo:
-
Crear un entorno virtual:
Abre tu terminal o símbolo del sistema y
navega hasta el directorio de tu proyecto (o donde quieras crear el entorno
virtual). Luego, ejecuta el siguiente comando:
Reemplaza nombre_del_entorno
con el nombre que quieras darle a tu entorno virtual (por convención, a
menudo se usa .venv
o env
). Esto
creará un directorio con el nombre especificado, que contendrá una copia de
Python, pip
y algunas bibliotecas base.
Ejemplo:
Esto creará un directorio llamado
.venv
en tu directorio actual.
-
Activar el entorno virtual:
Debes activar el entorno virtual para que tu
shell utilice la instalación de Python y pip
dentro del
entorno, en lugar de la instalación global del sistema. La forma de activar
el entorno depende de tu sistema operativo:
Una vez que el entorno virtual esté
activado, verás el nombre del entorno (por ejemplo, (.venv)
)
al principio de tu línea de comandos, indicando que estás trabajando dentro
del entorno virtual.
-
Instalar paquetes dentro del entorno
virtual:
Con el entorno virtual activado, cualquier
paquete que instales usando pip
se instalará solo
dentro de ese entorno virtual. No afectará a tu instalación global de Python
ni a otros entornos virtuales.
Ejemplo: Para instalar la biblioteca
requests
en tu entorno virtual activado:
-
Ver los paquetes instalados en el
entorno virtual:
Puedes usar pip list
para
ver los paquetes instalados dentro de tu entorno virtual. Verás solo los
paquetes que has instalado específicamente para este proyecto, además de
algunas dependencias básicas como pip
y
setuptools
.
-
Desactivar el entorno virtual:
Cuando termines de trabajar en tu proyecto y
quieras volver a tu entorno global o a otro entorno virtual, puedes
desactivar el entorno virtual actual con el siguiente comando:
Tu línea de comandos volverá a la normalidad,
sin el prefijo del nombre del entorno virtual.
Flujo de Trabajo
Típico:
- Navega al directorio de tu proyecto.
- Crea un entorno virtual:
python3 -m
venv .venv
- Activa el entorno virtual:
source .venv/bin/activate
(macOS/Linux) o .venv\Scripts\activate
(Windows).
- Instala las dependencias de tu proyecto:
pip install -r requirements.txt
(si tienes un archivo de
requisitos) o pip install paquete1 paquete2 ...
.
- Trabaja en tu proyecto.
- Cuando termines, desactiva el entorno
virtual:
deactivate
.
Otras Herramientas para Entornos
Virtuales:
Además de venv
, existen otras
herramientas populares para gestionar entornos virtuales en Python:
- virtualenv: Una
herramienta de terceros que proporciona funcionalidades similares a
venv
y puede ser necesaria en versiones más antiguas de Python.
- conda: Un gestor de
paquetes y entornos que se utiliza comúnmente en ciencia de datos y puede
gestionar dependencias que no son solo de Python.
- Poetry: Una herramienta
para la gestión de dependencias y empaquetado de Python que utiliza un
archivo
pyproject.toml
para gestionar las dependencias.
- pipenv: Un proyecto que
tiene como objetivo combinar las funcionalidades de pip y virtualenv en una
sola herramienta.
Sin embargo, para la mayoría de los proyectos
básicos de Python 3, venv
es suficiente y es la herramienta
recomendada por la documentación oficial de Python.
En resumen, los entornos virtuales son una
práctica esencial para mantener tus proyectos de Python aislados y gestionados
de manera eficiente. Utilizar venv
(o una herramienta similar) te
ayudará a evitar problemas de dependencias y a asegurar la consistencia de tus
proyectos en diferentes entornos.