Seguro que te ha pasado. Empiezas un nuevo proyecto en Python, instalas la última versión de Django y todo funciona de maravilla. Semanas después, vuelves a un proyecto antiguo que usaba una versión anterior y… ¡catástrofe! Nada funciona porque la actualización ha roto las dependencias. Este caos, conocido como el «infierno de las dependencias» (o dependency hell), es el pan de cada día para muchos desarrolladores.
Pero tranquilo, tengo la solución. Y no, no necesitas instalar herramientas complejas de terceros. La solución está integrada en Python y se llama venv. En esta guía te voy a enseñar, paso a paso, cómo uso yo los entornos virtuales para mantener mis proyectos limpios, organizados y a prueba de balas.
Contenidos
Por qué necesitas un entorno virtual (el famoso «dependency hell»)
Imagina que tu ordenador es un gran taller. Tienes una única caja de herramientas (tu Python «global») para todos tus trabajos. Si para un trabajo de fontanería necesitas una llave inglesa del 12, y para uno de mecánica una del 15, no hay problema. ¿Pero qué pasa si ambos trabajos requieren la misma llave, pero de tamaños diferentes? Ahí empieza el lío.
Un entorno virtual es como darle a cada proyecto su propia caja de herramientas totalmente independiente. El «Proyecto A» puede usar Requests v2.25.0 y el «Proyecto B» puede usar Requests v2.28.1 en el mismo ordenador, sin que uno interfiera con el otro. Cada proyecto tiene sus propias librerías con sus versiones específicas, aisladas del resto del sistema. Simple, limpio y profesional.
¿Qué es `venv` y por qué es mi favorito?
Existen varias herramientas para gestionar entornos virtuales en Python (como Conda, Poetry, etc.), pero venv tiene una ventaja que para mí es decisiva: viene incluido con Python desde la versión 3.3. No necesitas instalar nada extra para empezar a usarlo.
Es la herramienta oficial y nativa. Para el 95% de los proyectos, es todo lo que necesitas. Es ligero, rápido y hace una sola cosa, pero la hace perfectamente: aislar entornos. Por eso es mi herramienta de cabecera y la que siempre recomiendo para empezar.
Tutorial: Manos a la Obra con `venv` en 4 Pasos
Vamos al grano. Te voy a guiar por el proceso exacto que sigo yo para cualquier proyecto nuevo.
Paso 1: Crear el Entorno
Abre tu terminal o línea de comandos, navega hasta la carpeta de tu proyecto y ejecuta el siguiente comando. Yo suelo llamar a mi entorno
.venv
(con un punto al principio para que sea un fichero oculto).python3 -m venv .venv
Este comando crea una carpeta llamada
.venv
en tu directorio actual. Dentro de ella, Python ha instalado una copia de sí mismo y depip
, lista para usar.Paso 2: Activar el Entorno
Crear el entorno no es suficiente, tienes que «activarlo» para que tu terminal empiece a usarlo. El comando cambia ligeramente dependiendo de tu sistema operativo.
Sistema Operativo Comando de Activación Windows (cmd.exe) .venv\Scripts\activate
Windows (PowerShell) .venv\Scripts\Activate.ps1
macOS / Linux (bash/zsh) source .venv/bin/activate
Sabrás que ha funcionado porque el nombre del entorno aparecerá al principio de la línea de tu terminal, algo como
(.venv) C:\Users\Raul\dev\mi-proyecto>
. ¡Ya estás dentro!Paso 3: Instalar Paquetes y Trabajar
Ahora, cualquier paquete que instales con
pip
se quedará dentro de tu entorno virtual, sin afectar al Python global de tu sistema. Hagamos una prueba:pip install requests
Puedes comprobar que se ha instalado correctamente y empezar a escribir tu código. Este
requests
solo existe dentro de.venv
.Paso 4: Desactivar el Entorno
Cuando termines de trabajar en tu proyecto, solo tienes que escribir un simple comando para salir del entorno virtual y volver a tu terminal normal:
deactivate
El prefijo
(.venv)
desaparecerá, indicando que has vuelto al entorno global de tu sistema.
Buenas Prácticas que Te Ahorrarán Dolores de Cabeza
Usar venv
es fácil, pero para hacerlo como un profesional, te recomiendo que sigas estos dos consejos que yo aplico siempre.
El `.gitignore` es tu mejor amigo
La carpeta del entorno virtual (.venv/
) puede ocupar cientos de megabytes y contiene archivos que son específicos de tu máquina. Nunca debes subir esta carpeta a tu repositorio de Git.
Para evitarlo, simplemente añade el nombre de la carpeta a tu archivo .gitignore
:
# .gitignore
.venv/
Gestionando dependencias con `requirements.txt`
Si no subes el entorno a Git, ¿cómo saben tus compañeros (o tu yo del futuro) qué paquetes necesitan instalar? La respuesta es el archivo requirements.txt
.
Con tu entorno virtual activado, ejecuta este comando para generar automáticamente una lista de todos los paquetes instalados y sus versiones:
pip freeze > requirements.txt
Este archivo sí debes subirlo a Git. Cuando otra persona (o tú en otro ordenador) clone el proyecto, solo tendrá que crear y activar su propio entorno virtual y luego ejecutar:
pip install -r requirements.txt
👉 Este comando instalará automáticamente todas las dependencias listadas en el archivo, recreando el entorno de trabajo exacto. Puedes consultar más sobre `pip` en la documentación oficial.
Mi Consejo Personal y Conclusión
En mi día a día, no concibo empezar un proyecto de Python, por pequeño que sea, sin crearle su propio entorno virtual con venv
. Es un hábito que te ahorra incontables problemas, facilita la colaboración y hace que tus proyectos sean mucho más robustos y reproducibles.
Te puede parecer un paso extra al principio, pero te aseguro que el tiempo que inviertes en teclear python -m venv .venv
lo recuperarás con creces al evitar futuros desastres con las dependencias.
Y tú, ¿ya usabas venv o prefieres otra herramienta como Poetry o Conda? ¡Te leo en los comentarios!