Crear entorno virtual Python: Guía completa para usar venv

Table of Contents

Introducción a los entornos virtuales de Python

Oye, ¿te ha pasado alguna vez? Estás ahí, feliz con tu código, instalas una librería nueva para un proyecto… y de repente, otro proyecto que tenías en otro lado deja de funcionar. ¡Un clásico! Es como si, por enchufar la nueva cafetera inteligente, se te fundiera la nevera. En el mundo Python, la manera de evitar este lío de dependencias cruzadas es, sin duda, crear entorno virtual Python. No es solo una «práctica recomendada» de esos manuales aburridos; es tu salvavidas para mantener la cordura cuando trabajas en varios frentes.

Piensa en ello como tener tu propia habitación para cada proyecto. En una tienes montado un castillo de Lego (digamos, Django 4.2), en otra un circuito de Scalextric (Flask 3.0), y en la del fondo, un experimento de química con matraces y todo (tu análisis de datos con pandas). Si lo mezclas todo en el salón… bueno, ya te imaginas el desastre. Crear entorno virtual Python para cada cosa es tu manera de decir: «Tú, proyecto, vive aquí, con tus cosas, y no salgas». Así, cuando actualices los Legos, el Scalextric seguirá funcionando a toda velocidad.

Qué son los entornos virtuales y por qué son importantes

«Un entorno virtual Python es como tener un tupper específico para cada comida del batch cooking del domingo. Evitas que el curry le dé sabor a la ensalada de la semana.»

Esto deja de ser un capricho y se vuelve esencial en cuanto te metes en berenjenales de la vida real, como:

  • Trabajar en equipo: Para que no pase lo de «en mi máquina sí funciona». Todos con las mismas versiones, como si fuera un uniforme.
  • Llevarlo a producción: Para que la app no se comporte como ese vídeo de la videollamada familiar que se congela justo cuando tu tía cuenta el chiste bueno.
  • Automatizar el rollo: Para que tus pipelines de despliegue no se vuelvan impredecibles, como el tiempo de esta primavera.
  • Dormir tranquilo: Actualizar por seguridad sin el miedo constante de haber roto algo que no tocabas desde hace meses.

La buena noticia es que, como bien apunta la documentación oficial de Python, desde la versión 3.3 esto es pan comido. El módulo venv viene de serie, listo para usar. Es más fácil que configurar el mando a distancia nuevo de la tele, te lo aseguro.

En lo que sigue, no solo vamos a ver el comando mágico para crear entorno virtual Python. Vamos a trastear con ello, a integrarlo en tu editor (ese que tienes abierto con 15 pestañas), y a aplicar esos trucos que usamos los que ya hemos quemado algún proyecto por no hacerlo. ¿Empezamos? Comparte esto con tu compi de curro, que le va a venir de perlas.

Qué son los entornos virtuales y por qué son importantes

Entornos virtuales venv - ikerbit.com

Mira, si te dedicas a Python, tarde o temprano te vas a topar con el caos de versiones. Es como cuando tu pareja quiere ver una serie en Netflix y tú otra, y al final el perfil de recomendaciones es un desastre. Para evitar ese lío en tu código, crear entorno virtual Python no es solo una buena práctica, es casi un acto de supervivencia. Básicamente, es tu propio cajón de experimentos, un espacio aislado donde puedes instalar, probar y romper cosas sin que el resto de tu sistema se entere.

«Imagina un entorno virtual como tu habitación de adolescente: puedes poner los pósters que quieras (las librerías) y desordenarlo todo, sin que el resto de la casa (tu sistema) sufra las consecuencias.»

Definición de entorno virtual en Python

Un entorno virtual es una carpeta especial que contiene una copia de Python, su propio gestor de paquetes (pip) y un lugar para guardar las librerías que instales. O sea, es un mini-universo para tu proyecto. Lo que tienes dentro es:

  • Una instalación de Python (que puede ser distinta a la que tienes en el ordenador, ¡sí, es posible!)
  • El infalible (y a veces temperamental) pip.
  • Un rincón secreto donde viven todos los paquetes que le pidas.
  • Unos scripts mágicos que, al ejecutarlos, te «teletransportan» a ese universo. Uno para entrar y otro para salir.

La gracia de esto es que puedes tener un proyecto usando una versión antigua de Django (porque el cliente no quiere actualizar, ya sabes) y otro con la última, y no se van a pelear. Es como tener dos cafeteras: una para descafeinado y otra normal, cada una en su sitio.

Beneficios de usar entornos virtuales

¿Por qué molestarse en crear entorno virtual Python? Te doy razones de peso, de esas que notas a la primera semana:

Lo que ganasTraducción a algo útil
Adiós a las guerras de versionesTu proyecto de la uni con Flask 1.0 y tu nuevo side-project con Flask 3.0 pueden coexistir en paz. ¡Milagro!
Aislamiento de verdadCada proyecto tiene su propio cajón de juguetes. Si un paquete se corrompe, el drama se queda ahí.
«En mi máquina sí funciona»Puedes empaquetar las dependencias exactas y mandárselas a tu compañero. Así se acaba esa frase odiosa.
Menos desorden mentalTodo lo del proyecto (código, entorno, config) vive junto. Encuentras las cosas antes de que se te pase el café.
Tu sistema operativo te lo agradeceNo vas a instalar librerías globalmente que luego, al desinstalarlas, dejan migas por todo el sistema.

¿Ves? No es solo teoría. Cuando trabajas con más gente o tienes que desplegar la app en un servidor, esto es lo que evita que te quedes calvo a los 30. Todos usan las mismas versiones. Punto.

Diferencia entre venv, virtualenv y otras herramientas

Aquí viene el lío de nombres. Para crear entorno virtual Python tienes varias opciones, cada una con su personalidad:

  1. venv (el que viene de serie):
    • Está incluido en Python 3.3 en adelante. Vamos, que ya lo tienes.
    • Es el oficial, el «chico bueno» de Python.
    • Es simple, hace lo básico y bien. Para el 90% de los casos, es tu mejor opción.
    • Pero solo juega con Python 3, nada de versiones antiguas.
  2. virtualenv (el veterano):
    • Es como el primo mayor de venv. Lleva más tiempo en la calle.
    • Necesitas instalarlo con `pip install virtualenv` primero.
    • Su superpoder: funciona con Python 2 y 3, y tiene unos cuantos trucos más en la manga.
    • Si necesitas algo raro o trabajar con legado, este es tu tipo.
  3. pipenv (el moderno):
    • Es el que junta el entorno virtual y la gestión de paquetes en un solo tool. Menos comandos que recordar.
    • En vez del clásico `requirements.txt`, usa un `Pipfile`. Tiene su gracia.
    • Muy popular, aunque a veces puede dar algún susto con dependencias complejas.
  4. conda (el especialista):
    • Este es el rey del data science. Si tu proyecto tiene más matemáticas que código, mira hacia aquí.
    • Gestiona entornos y paquetes de cualquier lenguaje, no solo Python.
    • Perfecto para cuando necesitas una librería con mil dependencias en C++ detrás.

Mi consejo: empieza con venv. Es como aprender a conducir con un coche automático. Luego, si ves que te quedas corto, pasas a virtualenv. No te compliques la vida antes de tiempo.

Esta idea de aislar cosas no es nueva, claro. En el mundo de los contenedores, herramientas como Docker hacen algo parecido pero a lo bestia, metiendo toda la aplicación y el sistema operativo en una cajita. Es el siguiente nivel, pero el principio es el mismo: mantener el orden.

«¿Venv o virtualenv? Es como elegir entre un cuchillo de cocina suizo (venv, hace lo esencial) o una caja de herramientas completa (virtualenv, para cuando necesitas la llave allen número 3).»

Al final, aprender a crear entorno virtual Python de forma natural es lo que separa a quien escribe scripts sueltos de quien desarrolla proyectos de verdad. Te quita dolores de cabeza futuros, te hace parecer más profesional y, creedme, tu «yo del futuro» te lo agradecerá cuando no tengas que pasar un viernes noche arreglando conflictos de dependencias.

¿Te ha venido bien este rollo? Pásaselo a ese compañero que siempre tiene problemas al instalar cosas. ¡Entre todos hacemos que el código sufra menos!

Cómo crear un entorno virtual con venv paso a paso

Perfecto, ya sabes por qué deberías aislar tus proyectos. Ahora vamos a lo bueno: vamos a crear entorno virtual Python con venv, que viene incluido de serie. Te lo cuento como si estuviéramos tomando un café, paso a paso y sin tecnicismos aburridos.

Requisitos previos y verificación de Python instalado

Antes de lanzarte a crear entorno virtual Python, hay que hacer el equivalente a mirar si hay papel higiénico antes de sentarse… ¡comprueba que tienes Python! Abre tu terminal (esa ventana negra que da un poco de respeto) y escribe:

python --version

o, si eso no funciona, prueba con:

python3 --version

Si ves un número que empieza por 3 (3.3 o más), estás de suerte. Para asegurarte de que venv está listo para la acción, puedes lanzar un comando de ayuda:

python -m venv --help

«Hacer esta comprobación rápida te ahorrará ese momento de ‘¿y ahora por qué no funciona?’, te lo aseguro. Un pequeño paso para crear entorno virtual Python, un gran salto para tu cordura.»

Crear un entorno virtual desde la línea de comandos

Vale, todo listo. El proceso para crear entorno virtual Python es más sencillo que configurar una nueva serie en Netflix. Sigue esto:

  1. Ponte en la carpeta de tu proyecto: Usa cd para moverte, como si navegaras por carpetas, pero con comandos. cd /ruta/a/tu/proyecto
  2. Lanza el hechizo: Escribe python -m venv nombre_entorno. Elige un nombre que recuerdes, nada de «env_proyecto_final_v2_definitivo».
  3. Espera un momento: Verás un par de líneas pasar. No tarda ni lo que un microondas en calentar leche.

Por ejemplo, para uno llamado «mi_entorno_secreto»:

python -m venv mi_entorno_secreto

¿Te sientes un poco perdido con Python? No pasa nada, a todos nos ha pasado. Échale un ojo a nuestra guía completa de Python en una hora, que está contada para humanos, no para robots.

Estructura de carpetas del entorno virtual creado

Cuando termines de crear entorno virtual Python, venv habrá montado su pequeña oficina portátil. Si miras dentro de la carpeta, verás algo así:

¿Qué es esto?¿Para qué sirve?
bin/ (o Scripts/ si usas Windows)Aquí viven el Python y el pip de este entorno en concreto. Como tener tu propia cafetera en la oficina.
lib/ (o Lib/ en Windows)El trastero donde se guardan todos los paquetes que instales solo para este proyecto. Nada se mezcla.
include/Un cajón de sastre para cosas más técnicas (extensiones en C). No suele hacer falta tocarlo.
pyvenv.cfgEl manual de instrucciones de este entorno. Lo lee Python para saber dónde está todo.

Esta organización tan pulcra es, precisamente, la magia de crear entorno virtual Python: cada proyecto vive en su propia burbuja, sin peleas de versiones. Como tener un tupper para cada comida del día.

Si eres de los que les gusta leer las letras pequeñas, la documentación oficial de Python tiene todos los detalles, por si acaso.

«Aprender a crear entorno virtual Python bien es como aprender a atarte los cordones: parece una tontería, pero te cambia el día a día. Es la base de un desarrollo que no sea un caos.»

¿Te ha sido útil? Comparte esto con ese compañero que siempre tiene conflictos de librerías. Y si quieres más guías así, sin rollos, suscríbete y te avisamos.

Activación y desactivación del entorno virtual

Perfecto, ya tienes tu entorno virtual Python listo en su carpeta. ¿Y ahora qué? Pues ahora viene la parte mágica (bueno, no tan mágica, pero sí crucial): encenderlo. Es como cuando enchufas ese electrodoméstico nuevo; hasta que no le das al botón, no hace nada. Activar el entorno es ese botón. Le dice a tu terminal: «Oye, de momento olvídate del Python general del sistema, vamos a usar el de este proyecto en concreto». Así evitas esos líos de versiones que parecen una pelea de vecinos.

El comando para activarlo cambia dependiendo de si estás en Windows, Linux o macOS. No es para volverse loco, pero sí para tenerlo apuntado en un post-it la primera vez.

Activar el entorno virtual en diferentes sistemas operativos

En Linux y macOS (o sea, en terminales «Unix-like»):

  • Primero, colócate en la carpeta donde está tu entorno (esa que creaste con el comando python -m venv).
  • Luego, escribe esto: source nombre_de_tu_entorno/bin/activate.
  • Si todo va bien, verás que el prompt de tu terminal se pone un poco tímido y te muestra el nombre del entorno entre paréntesis, algo como (mi_proyecto) $. ¡Ya está hablando!

En Windows (con PowerShell o el CMD de toda la vida):

  • Abre PowerShell (te lo recomiendo sobre el CMD antiguo, es más potente).
  • Navega hasta la carpeta de tu entorno virtual.
  • Ejecuta: .\nombre_de_tu_entorno\Scripts\activate
  • Ojo, a veces PowerShell es un poco desconfiado y bloquea los scripts. Si te sale un error de ejecución, no te asustes. Solo tienes que darle permiso una vez con: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned. Es como decirle «tranquilo, confía en mí».

«Activar el entorno es como ponerte la bata de trabajo: delimita el espacio, te prepara la mente y evita que manches de dependencias el resto de la casa (tu sistema).»

Verificar que el entorno está activo correctamente

¿Cómo sabes que realmente estás dentro? A veces el prompt cambia y no te das cuenta, pasa. Para confirmar que tu entorno virtual Python está vivo y coleando, prueba estos trucos:

  1. Pregúntale «¿dónde estás?» a Python: usa which python (en Linux/macOS) o where python (en Windows). Debería señalarte una ruta dentro de la carpeta de tu entorno, no una ruta general del sistema.
  2. Pídele el DNI: python --version. Te dirá la versión exacta que aislaste para este proyecto.
  3. Revisa su mochila: pip list. Al principio solo verás lo básico (pip y setuptools), pero esto te asegura que estás viendo los paquetes de *este* entorno y no los de otros.

La señal más clara es ese nombre entre paréntesis al principio de la línea de comandos, (mi_entorno) usuario@host:~$. Si lo ves, respira tranquilo. Si trabajas con varios proyectos a la vez y te pierdes, crear alias en Bash puede salvarte la vida (o al menos, unos cuantos segundos de tecleo).

Desactivar el entorno virtual cuando termines

Has terminado por hoy. Es hora de guardar las herramientas. Para salir del entorno y volver al Python global de tu máquina, solo tienes que teclear:

deactivate

Sin más. Este comando es universal y funciona en todos los sistemas. Al ejecutarlo, esos paréntesis mágicos desaparecerán del prompt y tu terminal volverá a su estado normal, como si nada hubiera pasado. Es una buena costumbre hacerlo, la verdad. Evita esos momentos de «¿por qué no me funciona este paquete? ¡Ah, que estoy en el entorno equivocado!».

Dominar este ciclo de encendido y apagado es, te lo aseguro, la clave para crear entorno virtual Python de forma efectiva y no terminar con un caos de dependencias. Si quieres profundizar en los detalles más técnicos, la documentación oficial de Python siempre está ahí.

¿Te ha aclarado el proceso? Si a ti te ha servido, seguro que a otro desarrollador que esté empezando también. Comparte esta guía para ayudar a más gente a crear entorno virtual Python sin dolor de cabeza.

Gestión de paquetes dentro del entorno virtual

Instalar paquetes con pip en el entorno activo

Bien, ya tienes tu entorno virtual Python activo y listo. Es como tener tu propio cuarto de herramientas, separado del garaje común. Aquí, pip es tu mejor aliado (o a veces, ese amigo que te presta cosas pero luego las pide de vuelta). La instalación básica es tan directa como parece:

pip install nombre-del-paquete

Pero ojo, la magia está en los detalles. ¿Necesitas una versión específica porque tu proyecto depende de ella? Te va la jugada:

  • pip install django==4.2.0 – Para ser absolutamente exactos, sin sorpresas.
  • pip install requests>=2.28.0 – Dame al menos esta versión, pero si hay una mejor, ¡adelante!
  • pip install numpy~=1.24.0 – Algo compatible con esto, porfa. Es como pedir «algo que combine con estos pantalones».

«La gestión precisa de dependencias es lo que diferencia un proyecto profesional de uno amateur al crear entorno virtual Python.»

Crear y usar archivos requirements.txt

El archivo requirements.txt. Este pequeño archivo de texto es, sin exagerar, tu receta secreta. Es lo que evita que tu proyecto se convierta en ese típico «pues en mi máquina sí funcionaba». Para generar la lista de todo lo que tienes instalado, lánzalo:

pip freeze > requirements.txt

Y dentro, verás algo así, tu lista de la compra técnica:

Django==4.2.0
requests==2.31.0
numpy==1.24.3
pandas==2.0.3

Luego, cuando tu compañero o tú mismo en otra máquina (o después de un formateo épico) necesitéis reconstruir todo, es tan fácil como:

pip install -r requirements.txt

Es un concepto que ya conoces si has visto npm para Node.js, pero aquí, con sabor a Python. La idea es la misma: que todo el mundo esté en la misma página, literalmente.

Actualizar y eliminar paquetes

Mantener las cosas al día y limpiar lo que sobra… suena a tarea doméstica, ¿verdad? Pues en el desarrollo es igual de importante. Aquí tienes tu tabla de operaciones frecuentes:

Qué quieres hacerEl hechizo (comando)Para qué sirve
Actualizar un paquetepip install --upgrade nombre-paqueteLe da una dosis de última versión a ese paquete en concreto.
Actualizar TODOpip freeze | cut -d = -f 1 | xargs -n 1 pip install -UUn comando un poco más friki para actualizar todo de golpe. Úsalo con cuidado, que a veces las novedades traen sustos.
Deshacerse de un paquetepip uninstall nombre-paqueteLo borra sin dejar rastro. Preguntará para confirmar, no es tan impulsivo.
Ver qué está desactualizadopip list --outdatedTu radar para ver qué paquetes viven en el pasado.

Si tu proyecto se vuelve complejo, con muchas dependencias que se entrelazan, echa un vistazo a pip-tools. Son herramientas de los mismos que mantienen pip, y te ayudan a manejar estos enredos como un pro.

«Un archivo requirements.txt bien mantenido es tu garantía de reproducibilidad cuando creas entorno virtual Python para diferentes equipos o servidores.»

Un truco que te salvará: Ejecuta pip check de vez en cuando. Es como llevar el coche al mecánico para una revisión rápida; te dirá si hay conflictos entre paquetes antes de que tu aplicación empiece a comportarse de forma extraña en producción. Te ahorrará más de un dolor de cabeza y mantendrá tu entorno virtual Python firme y estable.

¿Te ha venido bien este paseo por la gestión de paquetes? Si crees que le puede servir a alguien más, compártelo. Y si quieres más guías así, donde expliquemos las cosas sin tanto tecnicismo aburrido, suscríbete y seguimos.

Configuración y personalización avanzada

Ya le pillas el truco a lo de crear entorno virtual Python, ¿verdad? Pues ahora viene lo bueno, cuando empiezas a tunearlo como si fuera el menú de opciones de tu smart TV. Porque, vamos a ver, ¿quién quiere quedarse solo con lo básico?

Especificar versión de Python al crear el entorno

Imagina que tienes varias versiones de Python instaladas, como esas series que empiezas en Netflix y nunca terminas. Para no liarla, puedes elegir con qué versión exacta quieres que juegue tu entorno. Es tan fácil como esto:

python3.10 -m venv mi_entorno
# O esta otra, que también mola
python3 -m venv --python=python3.11 mi_proyecto

¿Cuándo te salva la vida esto? Pues en situaciones tan cotidianas como:

  • Cuando tu jefe (o el servidor de producción) te exige una versión concreta, sin discusión.
  • Estás migrando un proyecto antiguo y necesitas ver si explota con Python 3.12 o sigue funcionando.
  • Simplemente quieres probar cómo se comporta tu código en distintos parques de atracciones (versiones).

«Elegir la versión de Python al crear entorno virtual Python es como poner la alarma correcta: evita sustos mañaneros entre desarrollo y producción.»

Configurar variables de entorno personalizadas

Aquí es donde tu entorno virtual se pone cómodo y se personaliza. Dentro de él, puedes definir tus propias variables, o sea, sus preferencias. Puedes hacerlo a mano, metiéndote en los scripts de activación, o crear un archivo .env (mucho más limpio).

# En Linux o macOS
export DATABASE_URL="postgresql://usuario:contraseña@localhost:5432/mi_db"
export DEBUG_MODE="True" # Esto a veces da más miedo que útil, pero bueno.

# En Windows (en el archivo activate.bat)
set DATABASE_URL=postgresql://usuario:contraseña@localhost:5432/mi_db
set DEBUG_MODE=True

Para no tener que hacer esto a mano cada vez, hay un paquete que es casi mágico: python-dotenv. Lo instalas y él solo se lee el archivo .env. Una maravilla.

pip install python-dotenv

Te aseguro que cuando necesitas crear entorno virtual Python para desarrollo, pruebas y producción, esto es lo que separa el caos del orden. Bueno, un orden relativo, al menos.

Integración con editores de código y IDEs

Si tu entorno virtual y tu editor no se hablan, es como tener un móvil de última generación sin WiFi. Funciona, pero… ¿para qué? Vamos a emparejarlos.

Visual Studio Code

En VS Code, abre la paleta de comandos (Ctrl+Shift+P, o Cmd+Shift+P si eres de Mac) y escribe «Python: Select Interpreter». Ahí te saldrán todos los Pythones de tu vida, incluido el de tu entorno virtual recién horneado. Si te pica la curiosidad por saber todo lo que puede hacer VS Code, échale un ojo a este artículo sobre Visual Studio Code ahora en versión web.

PyCharm

Con PyCharm Professional, la cosa va por menús: File → Settings → Project → Python Interpreter. Le das al engranaje, «Add Interpreter», y buscas la ruta a tu Python dentro del entorno virtual (en venv/bin/python o venv\Scripts\python.exe). Un par de clics y ¡ya están hablando!

Para los que les gusta el control absoluto

Si eres de los que lo quiere todo atado y bien atado, crea un archivo de configuración en tu proyecto. Por ejemplo, en VS Code, un .vscode/settings.json con esto:

{
  "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python",
  "python.terminal.activateEnvironment": true
}

Como bien recuerda la documentación oficial de Python, integrar bien el entorno con tu herramienta es casi la mitad del trabajo hecho. La otra mitad es el café.

«Configurar la integración con tu IDE no es solo productividad. Es evitar ese error raro que aparece un viernes a las 7 de la tarde y te arruina el plan.»

Dominar estos ajustes es lo que te permite crear entorno virtual Python que de verdad se adapte a tu flujo, a tus manías y a tu proyecto. ¿Ya has probado a tunearlo así? ¡Cuéntanos en los comentarios si te ha dado más alegrías que sustos!

Mejores prácticas para gestionar entornos virtuales

Vale, ya sabes crear entorno virtual Python. Pero, ¿te ha pasado eso de tener cinco proyectos abiertos y no recordar en cuál dejaste esa librería experimental que rompió todo? A mí sí, y te aseguro que la verdadera magia no está en crearlo, sino en no volverte loco después. Estas son las prácticas que me salvan la piel a diario, recogidas de batallas reales en servidores Linux y pipelines de DevOps que a veces parecen de humor negro.

Organización de proyectos y entornos

Sin un sistema, es como intentar ordenar una habitación de adolescente después de una fiesta. Caos total. Mi método, después de equivocarme mil veces, es este:

  • Tu rincón sagrado: Elige una carpeta madre. La mía es ~/code/, pero /opt/python_projects/ también mola si te sientes más profesional. Lo importante es que sea TU sitio.
  • Dentro de cada proyecto, haz esto (en serio):
    • nombre_proyecto/ (la raíz de todo)
    • nombre_proyecto/.venv/ (mi favorito: lo esconde, y Git lo ignora automáticamente si usas ese punto al principio)
    • nombre_proyecto/src/ (aquí vive el código de verdad)
    • nombre_proyecto/tests/ (porque si no pruebas, luego lloras)
    • nombre_proyecto/docs/ (que luego dices «esto lo documentaré luego» y nunca pasa…)
  • Llámalos igual siempre: .venv, venv o env. Como llamar siempre a tu primer gato «Michi». La consistencia es tu mejor amiga cuando son las 2 AM y estás debuggeando.

«Un entorno virtual ordenado es como tener los cubiertos en su cajón: no es glamuroso, pero el día que no lo estén, maldecirás todo.»

Para proyectos que se complican (ya sabes, esos con 50 dependencias que se llevan mal), herramientas como Poetry o Pipenv son un salvavidas. Pero ojo, a veces la simplicidad de venv directo, con su requirements.txt, es como un café solo: no falla.

Control de versiones y entornos virtuales

Aquí es donde muchos meten la pata hasta el fondo. Subir el entorno virtual a Git es como subir una foto de 80MB de tu gato: ocupa un espacio bestial y a tus compañeros les dará un soponcio. La regla de oro:

METE esto en Git (sin miedo)DEJA FUERA esto (o te señalarán con el dedo)
El archivo requirements.txt o el pyproject.toml (la lista de la compra)La carpeta del entorno virtual entera (venv/, .venv/, etc.)
Los scripts de configuración (setup.py y compañía)Toda la caché de Python (__pycache__/, esos *.pyc que aparecen como setas)
Los ajustes del proyecto que todos necesitanTus variables locales secretas (.env), ¡nunca las subas!
Una documentación mínima para no dejar tirado al siguienteLa basura que genera tu IDE (.vscode/, .idea/), a menos que sea un acuerdo de equipo.

Lo más fácil? Usar un .gitignore listo para Python. Te pego el corazón del mío:

# Entornos virtuales (¡NO LOS SUBAIS!)
venv/
.venv/
env/
ENV/

# Archivos fantasma de Python
__pycache__/
*.py[cod]
*.so
.Python

El objetivo final es que cualquiera pueda clonar tu repo, crear entorno virtual Python desde cero y tenerlo todo funcionando con un pip install -r requirements.txt. Si no es así, algo huele mal.

Automatización con scripts y herramientas

¿Hacer lo mismo 20 veces manualmente? Eso es para mártires. Automatizar es para listos. Mis trucos:

  1. Un script de «pulsa y listo»: Crea un iniciar.sh (o .bat si estás en Windows, mis condolencias) que haga el trabajo sucio:
    • Monte el entorno virtual solo
    • Instale las dependencias del requirements.txt
    • Ponga a punto las variables de entorno (esa parte siempre se nos olvida)
    • Y si hay base de datos, que lance las migraciones… antes de que tú te acuerdes.
  2. Makefiles, tu nuevo mejor amigo: Suenan a vieja escuela, pero son la bomba. Mira este ejemplo cutre pero efectivo:
    .PHONY: venv instalar probar limpiar

    venv:
    python -m venv .venv

    instalar: venv
    . .venv/bin/activate && pip install -r requirements.txt

    probar:
    . .venv/bin/activate && python -m pytest -v

    limpiar:
    rm -rf .venv
    find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true

  3. Metelo en el CI/CD: Que tu pipeline automatizado también cree el entorno virtual Python y ejecute las pruebas. Si quieres profundizar en este mundo de automatización salvaje, lee nuestra guía sobre las mejores herramientas CI/CD open source en 2025.

«Automatizar no es ser vago, es ser inteligente. Es como programar la cafetera para que esté lista cuando te levantas.»

Para los proyectos más hardcore, Docker es el siguiente nivel (es como meter tu entorno en una cápsula del tiempo). Pero incluso dentro del contenedor, un venv suele ser buena idea. Para los detalles más frikis, la documentación oficial de Python en docs.python.org nunca falla.

Al final, aplicar estas ideas te dejará crear entorno virtual Python sin pensar, como atarte los zapatos. Y tu futuro yo, a las 3 de la madrugada, te lo agradecerá. ¿Tienes algún truco propio que te salve la vida? Cuéntanoslo en los comentarios, entre todos aprendemos más.

Si quieres scripts ya hechos y configuraciones que puedes copiar-pegar y modificar, suscríbete al newsletter. Te mandamos cosas útiles, sin spam (odio el spam más que las dependencias rotas).

Preguntas frecuentes sobre entornos virtuales Python (FAQ)

Vale, seguro que te ha pasado: estás ahí, con tu proyecto a medio hacer, y de repente todo se rompe porque instalaste una librería nueva. ¿Suena familiar? Pues la mayoría de esos líos se evitan con algo tan simple como saber crear entorno virtual Python. Aquí van las preguntas que todo el mundo se hace (y algunas que quizá no te habías planteado).

¿Cuál es la diferencia entre venv y virtualenv? ¿Me lío?

Es normal, a ver, te lo pongo fácil. venv es como el hermano pequeño que ya viene de serie en Python (desde la versión 3.3). Es suficiente para el 90% de lo que harás. virtualenv, en cambio, es como el tío veterano y más cacharro: llegó antes, tiene más opciones raras y funciona hasta con Pythons más antiguos. La clave: si estás en Python moderno, usa venv y olvídate de instalar nada extra. Si te toca lidiar con un proyecto heredado de esos que dan miedo, puede que necesites virtualenv.

«La verdad es que, para casi todo hoy, venv es tu mejor opción. Viene con el coche, ¿para qué complicarse?»

¿Puedo tener múltiples entornos virtuales para un mismo proyecto? ¿No es exagerar?

¡Para nada! De hecho, es un truco de gente organizada (o que ha quemado muchos proyectos). Imagina que tienes:

  • Uno para trastear: Donde pruebas la última versión inestable de esa librería que promete maravillas.
  • Uno «serio» para desarrollar: Con las versiones estables que sabes que funcionan.
  • Y otro solo para tests: Limpio, con solo lo necesario para que tus pruebas no se contaminen. Es como tener diferentes cajones de herramientas para cada tarea. Muy útil.

¿Cómo elimino completamente un entorno virtual? ¿Es solo borrar la carpeta?

Básicamente, sí. No hay ceremonias. Cuando quieras hacer limpieza, simplemente mandas la carpeta del entorno a la papelera de reciclaje (o la borras con furia desde la terminal). O sea:

En Linux o Mac (desde la terminal):

rm -rf mi_entorno_que_no_funciona/

En Windows (en PowerShell o CMD):

rmdir /s mi_entorno_que_no_funciona

¡Cuidado con el comando! Asegúrate de que estás borrando lo correcto, que luego vienen los sustos.

¿Los entornos virtuales ralentizan mi código? ¿Notaré algo?

Prácticamente nada. El único «momento lento» es cuando lo activas, que tarda lo que un parpadeo. Pero una vez dentro, tu código corre a la misma velocidad que si usaras el Python de todo el sistema. El aislamiento que ganas (y los dolores de cabeza que evitas) no tienen precio comparado con esa mini-pausa inicial. Te lo aseguro.

¿Es necesario usar entornos virtuales para TODOS los proyectos? ¿Incluso para un script de 3 líneas?

Obligatorio no es, pero… ¿sabes esa manía de dejar los calcetines por el suelo? Al principio no pasa nada, hasta que un día tropiezas. Con los entornos es igual. Para que te hagas una idea:

¿En qué estás?¿Qué deberías hacer?
Un proyecto serio (para cliente, para producción)✅ Sí, siempre. Sin discusión.
Un script rápido para procesar un CSV⚠️ Podrías saltártelo… pero ¿y si luego crece? Mejor acostumbrarse.
Trabajando con más gente✅ Imprescindible. Es la ley no escrita para no odiarse entre desarrolladores.
Aprendiendo o enseñando✅ Totalmente. Así si la lías, no jodes la instalación global.

Si quieres empollarte todos los detalles, la biblia oficial es la PEP 405. Pero con lo que te he contado ya vas sobrado.

«El hábito que separa al caos del orden: crear entorno virtual Python como primer paso, siempre.»

¿Te ha quedado alguna duda más rara? A veces las preguntas más interesantes salen después. ¡Cuéntamelo en los comentarios! Y si no quieres perderte los próximos trucos (a veces hasta divertidos), suscríbete y te llegará todo.

Conclusión: Dominar la creación de entornos virtuales

Vale, seamos sinceros. Aprender a crear entorno virtual Python no es la parte más glamurosa de programar, ¿verdad? No tiene la emoción de ver tu aplicación funcionando por primera vez. Pero, oye, te lo digo en serio: es de esas cosas que, una vez las integras, te cambian la vida (la de desarrollador, se entiende). Es como pasar de tener todos los cables de tu router, consola y televisor enredados en un cajón, a tenerlos cada uno en su sitio, etiquetados y listos. La paz mental no tiene precio.

«El verdadero ‘superpoder’ en Python no es solo escribir código elegante, sino evitar el infierno de ‘pero en mi máquina sí funcionaba’.»

Si te paras a pensarlo, los beneficios son casi demasiado buenos para ser verdad. Te cuento lo que a mí me ha solucionado:

  • Proyectos que no se pelean: Imagina que un proyecto necesita una versión antigua de una librería y otro la última. Sin entorno virtual, es la receta perfecta para un desastre. Con él, es como si vivieran en universos paralelos. ¡Nunca más un update te rompa todo lo demás!
  • Clonar tu setup es pan comido: ¿Te ha pasado eso de descargar un proyecto de GitHub, hacer `pip install` y que salten mil errores? Con un `requirements.txt` actualizado, es cuestión de segundos. Es casi mágico.
  • Mantenimiento sin dolor de cabeza: Saber exactamente qué paquetes usa cada cosa. Cuando llega el momento de actualizar o limpiar, no es una misión de detective.
  • Trabajar en equipo sin perder los nervios: Enviar el `requirements.txt` a un compañero y que todo funcione a la primera… eso sí que es trabajo en equipo eficiente. Se evitan esas reuniones de «a ver, ¿qué versión tienes tú instalada?».

La documentación oficial de Python no se anda con rodeos: para cualquier cosa que no sea un script de una sola vez, usa un entorno virtual. Y la herramienta venv ya viene de serie con Python 3, no hay excusa. Es como si tu coche nuevo viniera con cámara de marcha atrás; ¿por qué no usarla?

Ahora, si ya le has pillado el gusto y te ves gestionando varios proyectos a la vez, o necesitas saltar entre versiones de Python (¿quién no ha tenido que mantener algo en Python 3.7 mientras ya usa 3.11?), entonces es el momento de echar un ojo a herramientas como pyenv. Y para la gestión de dependencias, pipenv o poetry son un paso adelante. Tienen más botones y opciones, sí, pero para proyectos serios son un salvavidas. Es como pasar de una cocina básica a una con robot de cocina.

Mi consejo: empieza hoy mismo. No esperes al «próximo proyecto grande». Coge ese script que tienes para descargar tus series favoritas y ponle su propio entorno virtual. La curva de aprendizaje es mínima y la recompensa es instantánea. Te lo prometo, después de una semana usándolos, te preguntarás cómo has podido vivir en el caos hasta ahora.

Y por favor, comparte el truco. Si en tu equipo o con tus amigos de la universidad todos usáis entornos virtuales, os ahorráis el 90% de los problemas tontos. Si te quedas con dudas, la guía oficial está muy bien, pero a veces es más útil preguntar en un foro o comunidad. Al final, se trata de construir sobre bases sólidas, y dominar el arte de crear entorno virtual Python es, sin duda, una de las piedras angulares. No es lo más brillante, pero es lo que te permite construir sin miedo a que todo se derrumbe.

Deja un comentario

Scroll al inicio