Introducción: por qué crear entorno virtual Python marca la diferencia
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.

«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é es un entorno virtual de Python y por qué es tan importante

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: qué es exactamente un 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 crear entorno virtual Python en tus proyectos
¿Por qué molestarse en crear entorno virtual Python? Te doy razones de peso, de esas que notas a la primera semana:
| Lo que ganas | Traducción a algo útil |
|---|---|
| Adiós a las guerras de versiones | Tu proyecto de la uni con Flask 1.0 y tu nuevo side-project con Flask 3.0 pueden coexistir en paz. ¡Milagro! |
| Aislamiento de verdad | Cada 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 mental | Todo 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 agradece | No 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:
- 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.
- 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.
- 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.
- 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 entorno virtual Python 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: verifica que tienes 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:
- Ponte en la carpeta de tu proyecto: Usa
cdpara moverte, como si navegaras por carpetas, pero con comandos.cd /ruta/a/tu/proyecto - Lanza el hechizo: Escribe
python -m venv nombre_entorno. Elige un nombre que recuerdes, nada de «env_proyecto_final_v2_definitivo». - 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.cfg | El 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 Python
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_entornoScriptsactivate - 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:
- Pregúntale «¿dónde estás?» a Python: usa
which python(en Linux/macOS) owhere python(en Windows). Debería señalarte una ruta dentro de la carpeta de tu entorno, no una ruta general del sistema. - Pídele el DNI:
python --version. Te dirá la versión exacta que aislaste para este proyecto. - 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 Python
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 hacer | El hechizo (comando) | Para qué sirve |
|---|---|---|
| Actualizar un paquete | pip install --upgrade nombre-paquete |
Le da una dosis de última versión a ese paquete en concreto. |
| Actualizar TODO | pip freeze | cut -d = -f 1 | xargs -n 1 pip install -U |
Un comando un poco más friki para actualizar todo de golpe. Úsalo con cuidado, que a veces las novedades traen sustos. |
| Deshacerse de un paquete | pip uninstall nombre-paquete |
Lo borra sin dejar rastro. Preguntará para confirmar, no es tan impulsivo. |
| Ver qué está desactualizado | pip list --outdated |
Tu 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 del entorno virtual
Ya le pillas el truco a lo de crear entorno virtual Python, ¿verdad? Pues ahora viene lo bueno, cuando empiezas a tuneanlo 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 la 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
