Qué son, qué resuelven y cómo gestionarlos
Ojo con esto
Llegó el momento de encarar un proyecto con Python. Ya tenés en mente qué vas a resolver, una idea de cómo encararlo y las librerías que te van a permitir lograrlo.
Hace tiempo instalaste Python, ya que estás dando tus primeros pasos en el lenguaje. Tenés dentro de todo claro el concepto de librería y sabés cómo instalarlas. Pero ojo con esto.
Si vas a instalar librerías de Python para un proyecto, hay que evitar un error muy común que se comete cuando somos nuevos con el lenguaje, y que de hecho cometí, que es instalar librerías en el Python global del sistema.
Vayamos por partes:
- ¿Qué es el Python global y qué problemas hay con instalar muchas librerías ahí?
- ¿Cómo solucionan este problema los entornos virtuales?
- ¿Qué es un entorno virtual de Python? ¿Cómo se instalan y gestionan dichos entornos?
¿Qué es el Python global y qué problemas hay con instalar muchas librerías ahí?
Cuando instalás Python, tu sistema operativo te deja un “Python base” o también llamado “Instalación global”, una especie de caja de herramientas compartida para todos tus proyectos. Esa instalación global es conveniente… hasta que ya no lo es.
¿Por qué? Por varios motivos:
- Dependencias que chocan entre sí: imaginá que un proyecto requiere pandas==1.5 y otro, pandas==2.2. Si instalás todo en el Python global… boom, conflicto. Un proyecto va a andar, el otro no, o ninguno.
- Ensuciás el sistema: después de un tiempo, terminás con un Python global inflado, lleno de paquetes que ni sabés quién usa. Algo así como tu carpeta de Descargas, pero con consecuencias en tus proyectos.
- Difícil de replicar: si querés enviarle tu proyecto a alguien o desplegarlo en un servidor, ¿cómo garantizás que tiene exactamente las versiones que vos tenés instaladas? Spoiler: no podés. O a lo mejor sí, pero eso implicaría instalar la misma versión de Python e instalar manualmente todas y cada una de las dependencias (en la misma versión exacta) en el sistema destino.
En otras palabras: instalar cosas en el Python global es como guardar todas tus herramientas en una caja de cartón. Funciona, tenés todo ahí…pero después te arrepentís ya que el desorden que genera termina haciéndote perder tiempo.
¿Cómo solucionan este problema los entornos virtuales?
Los entornos virtuales existen para darte aislamiento.
Cada proyecto tiene su propio mini-Python, con sus librerías, sus versiones y su ecosistema independiente del resto del sistema.
Es como tener “burbujitas”, cada una con la misma versión de Python, pero con cada burbuja siguiendo sus propias reglas. Un proyecto puede usar Django 4.0 y otro Django 5.1 sin drama alguno. Lo que pase en ese entorno, queda en ese entorno. Lo que pasa en la “burbuja”…se queda en la “burbuja”.

Los entornos virtuales también facilitan:
- Reproducibilidad: podés generar un archivo requirements.txt y cualquiera puede levantar tu proyecto con las mismas dependencias. Es decir, podés reconstruir en el mismo entorno en donde lo necesites.
- Higiene técnica: tu sistema se mantiene limpio y tus proyectos también. Nada de tener el Python global lleno de cosas que no hacen falta.
- Portabilidad: si desplegás en AWS Lambda, Cloud Run, Docker o donde sea, necesitás saber qué dependencias exactas usa tu proyecto. Los entornos virtuales te obligan a ser explícito. Y en esto tengo una anécdota donde no ser explícito con las versiones nos rompió la cabeza a mí y a un compañero del trabajo cuando nos tocó colaborar en un mismo proyecto. ¿Querés que te la comparta? Contactame a través de mis redes y charlemos 😊
¿Qué es un entorno virtual de Python? ¿Cómo se instalan y gestionan dichos entornos?
Un entorno virtual es una carpeta que contiene:
- una copia ligera del intérprete de Python
- una carpeta site-packages donde se guardan las dependencias
- scripts para activar ese “mini-Python” o el “Python burbuja”
Los podés crear con varias herramientas, pero la más estándar (y que ya viene con Python) es venv.
Crear un entorno virtual
1python3 -m venv .venvActivar el entorno
Linux / MacOS:
1source .venv/bin/activateWindows (PowerShell):
1.\\.venv\\Scripts\\activateInstalar librerías dentro del entorno
1pip install pandas
2pip install requestsExportar dependencias a un requirements.txt
1pip freeze > requirements.txtDesactivar el entorno
1deactivate # Con eso volvés al Python global, como si nunca hubiera pasado nada.Conclusión
Los entornos virtuales son una herramienta que todo pythonista que se precie de serlo debe conocer y utilizar. Entre sus beneficios se cuentan:
- Aislamiento, lo que evita que tengas conflictos de dependencias
- El Python global del sistema queda limpio y ordenado
- Reproducibilidad, lo que te permite reconstruir el proyecto en otra máquina con un alto grado de precisión