Entornos en Python: guía completa con instancias y sandbox
Cuando una persona empieza a crear scripts en Python, una de las primeras dudas que aparece es esta: ¿debo instalar todo en mi sistema o crear un entorno para cada proyecto? La respuesta correcta, en la mayoría de casos, es usar un entorno virtual por proyecto.
Aunque al principio parezca un detalle técnico, en realidad es una práctica sencilla que evita muchos problemas. Gracias a ello, puedes mantener tus librerías ordenadas, evitar conflictos entre proyectos y trabajar con más seguridad, incluso si más adelante usas herramientas como Codex.
Qué es un entorno virtual en Python
Un entorno virtual, normalmente llamado venv, es una carpeta especial donde se guardan las librerías de un proyecto específico. Eso significa que las dependencias que instales allí solo afectarán a ese proyecto y no al resto de tu sistema.
Por ejemplo, si tienes un proyecto para procesar imágenes y otro para automatizar tareas web, cada uno puede tener sus propias librerías y versiones sin interferir entre sí.
En palabras simples, un entorno virtual es como una caja de herramientas separada para cada trabajo.
Por qué no conviene instalar todo en el sistema
Al comienzo, muchos usuarios instalan paquetes directamente en Python del sistema porque parece más rápido. El problema aparece después, cuando un proyecto necesita una versión de una librería y otro proyecto necesita una distinta.
Eso puede producir errores, conflictos o comportamientos inesperados. Además, si desinstalas algo o actualizas una dependencia sin darte cuenta, podrías romper un script que antes funcionaba bien.
Por eso, trabajar siempre sobre el sistema no suele ser la mejor idea cuando ya empiezas a usar librerías como Pillow, rembg, requests, numpy o similares.
La regla más importante: un proyecto, un entorno
La forma profesional de trabajar en Python es muy simple:
un proyecto = una carpeta = un entorno virtual
Eso no significa que debas crear un entorno para cada archivo .py. Si dentro de una misma carpeta tienes varios scripts relacionados entre sí, todos pueden compartir el mismo entorno.
Por ejemplo, si tienes un proyecto para procesar imágenes de productos, podrías organizarlo así:
mi-proyecto/
├─ venv/
├─ procesar_imagenes.py
├─ convertir_png.py
├─ requirements.txt
└─ resultado/En este caso, todos los scripts del proyecto usan el mismo venv, porque pertenecen al mismo trabajo.
Por qué la carpeta venv se llama así
Mucha gente piensa que venv es un nombre obligatorio, pero no lo es. En realidad, puedes ponerle otro nombre. Sin embargo, casi todos usan venv porque es una convención conocida y facilita entender la estructura del proyecto.
Cuando alguien entra a una carpeta y ve venv, sabe inmediatamente que allí está el entorno virtual.
Cómo crear un entorno virtual
Crear un entorno virtual es fácil. Dentro de la carpeta de tu proyecto, puedes usar el comando correspondiente a la versión de Python que tengas instalada. Por ejemplo, si vas a usar Python 3.13, puedes usar este comando:
py -3.13 -m venv venvSi no estás seguro de qué versiones tienes instaladas en Windows, primero puedes comprobarlo con estos comandos:
py -0py -0pLuego eliges la versión que quieras usar para crear el entorno virtual:
py -3.13 -m venv venvLuego lo activas en Windows con:
venv\Scripts\activateCuando se activa, el sistema empieza a usar las librerías de esa carpeta y ya no las del Python global.
Después puedes instalar lo que tu proyecto necesite, por ejemplo:
pip install rembg pillowCómo saber qué librerías tiene tu entorno
Si vuelves a abrir tu proyecto después de varios días o semanas, basta con activar el entorno y ejecutar:
pip listEso te mostrará las librerías instaladas en ese venv.
También conviene guardar una lista exacta de dependencias con este comando:
pip freeze > requirements.txtAsí, si un día borras tu entorno o cambias de computadora, puedes reconstruirlo fácilmente.
Cómo reconstruir un entorno virtual
Una de las mejores cosas del venv es que se puede borrar y volver a crear. Lo verdaderamente importante no es la carpeta venv, sino el archivo requirements.txt.
Si necesitas reconstruirlo, haces esto:
py -3.13 -m venv venv
venv\Scripts\activate
pip install -r requirements.txtCon eso recuperas el entorno del proyecto sin tener que recordar cada librería manualmente.
Qué pasa si guardas tu proyecto en un SSD externo
También es posible guardar tus proyectos en un SSD externo, como un Kingston XS1000. Puedes almacenar allí tus scripts, imágenes, resultados y hasta el propio entorno virtual.
Sin embargo, hay un detalle importante: el venv guarda rutas internas, y si cambia la letra de la unidad o mueves el proyecto a otra ubicación, puede dejar de funcionar correctamente.
Por eso, lo más recomendable es guardar en el SSD el proyecto y el archivo requirements.txt, y recrear el entorno cuando sea necesario.
Qué relación tiene esto con Codex
Cuando se empieza a usar Codex, muchas personas piensan que cada carpeta ya actúa como una especie de entorno independiente. En parte sí y en parte no.
Cada carpeta puede representar un proyecto para Codex, pero eso no reemplaza el entorno virtual de Python. Codex puede trabajar sobre tu proyecto, ayudarte con el código y ejecutar tareas según los permisos que le des, pero las librerías de Python siguen dependiendo de tu venv.
En otras palabras, Codex puede ayudarte a programar, pero el aislamiento real de dependencias lo sigue haciendo el entorno virtual.
Qué significa sandbox de forma sencilla
El término sandbox suele sonar complicado, pero la idea es simple. Es un espacio controlado donde una herramienta puede trabajar con ciertas limitaciones de seguridad.
Por ejemplo, si una aplicación trabaja dentro de una carpeta sin poder tocar otras ubicaciones sensibles del sistema, eso es una forma de aislamiento. Es una medida pensada para reducir riesgos.
Aunque suene técnico, para el usuario común lo importante es saber que el sandbox no sustituye al venv. Son cosas distintas: uno se relaciona con seguridad y permisos, y el otro con librerías y dependencias de Python.
Qué hacen normalmente los programadores
La práctica más común y recomendable es esta:
- crear una carpeta para cada proyecto
- crear un
venvdentro de esa carpeta - instalar solo las librerías que ese proyecto necesita
- guardar un
requirements.txt
Con esa estructura, el trabajo es más limpio, más seguro y más fácil de mantener.
Cuándo podrías no usar entorno virtual
Si solo vas a hacer una prueba mínima, muy rápida y sin librerías especiales, podrías trabajar temporalmente con el Python del sistema. Pero en cuanto el script empiece a crecer o necesite paquetes externos, lo correcto es pasar a un entorno virtual.
En la práctica, si ya estás instalando librerías con pip, lo más recomendable es usar venv.
Qué es una instancia en Python y cómo entenderla bien
La palabra instancia puede causar confusión cuando una persona recién empieza a trabajar con Python, entornos virtuales o herramientas como Codex. En este contexto, conviene entenderla de forma simple: una instancia es una ejecución o sesión activa de algo. Por ejemplo, puede hablarse de una instancia de Python cuando el intérprete se está ejecutando, o de una instancia de una herramienta cuando esa herramienta abre una sesión de trabajo.
En la práctica diaria, muchos principiantes mezclan el término instancia con otros conceptos que no son lo mismo, como carpeta de proyecto, entorno virtual o script. Por eso es importante diferenciarlos bien.
Una carpeta de proyecto es el lugar donde guardas tus archivos. Un entorno virtual es donde están las librerías de ese proyecto. En cambio, una instancia no suele ser una carpeta ni una librería, sino una ejecución activa o una sesión de trabajo temporal.
Ejemplos prácticos para entender una instancia
A continuación verás ejemplos sencillos para que entiendas mejor qué significa abrir, mantener y cerrar una instancia o sesión de trabajo en Python y en la terminal. No siempre se usa la palabra instancia de forma estricta en cada caso, pero estos ejemplos ayudan a visualizar la idea de una ejecución activa.
Ejemplo 1: abrir una instancia del intérprete de Python
Cuando abres Python en la terminal, inicias una sesión activa del intérprete. Mientras esa sesión está abierta, puedes escribir instrucciones y Python las ejecuta en ese momento.
pySi se abre correctamente, verás algo parecido a esto:
Python 3.13.0 (tags/...)
Type "help", "copyright", "credits" or "license" for more information.
>>>Ese símbolo >>> indica que la sesión del intérprete está abierta. En términos simples, puedes pensar que esa es una instancia activa de Python.
Ejemplo 2: usar esa instancia abierta
Una vez dentro del intérprete, puedes escribir código directamente.
print("Hola")x = 10
print(x + 5)Mientras sigas viendo >>>, la sesión sigue abierta. Todo lo que declares allí existe dentro de esa ejecución activa.
Ejemplo 3: cerrar la instancia del intérprete
Para salir del intérprete de Python y cerrar esa sesión, puedes usar cualquiera de estas opciones:
quit()En Windows también puedes cerrar esa sesión con esta combinación de teclas:
"Ctrl + Z" y luego EnterAl hacerlo, termina la ejecución interactiva y vuelves a la terminal normal.
Ejemplo 4: abrir una ejecución de un script de Python
Cuando ejecutas un archivo .py, también se crea una ejecución activa de Python para ese script. Esa ejecución dura mientras el script corre y termina cuando finaliza.
py mi_script.pyEjemplo de contenido del archivo:
print("Inicio del script")
nombre = "Cesar"
print("Hola,", nombre)
print("Fin del script")En este caso, no sueles ver la instancia como una ventana interactiva, pero sí existe una ejecución temporal de Python mientras el script corre.
Ejemplo 5: una instancia que permanece abierta esperando trabajo
Hay programas que se quedan ejecutándose y esperando instrucciones. Ese comportamiento ayuda a entender mejor la idea de una instancia activa.
while True:
texto = input("Escribe algo o escribe salir: ")
if texto.lower() == "salir":
break
print("Recibido:", texto)Este programa permanece abierto hasta que escribes salir. Mientras tanto, esa ejecución sigue viva. Esa es una buena forma de imaginar una instancia activa que permanece abierta.
Ejemplo 6: cerrar una ejecución desde el propio código
También puedes terminar una ejecución desde el script usando una salida explícita.
raise SystemExitO de forma más común:
import sys
sys.exit()Esto finaliza la ejecución del programa en ese punto.
Ejemplo 7: abrir una sesión de entorno virtual antes de trabajar
Aunque un entorno virtual no es exactamente una instancia, sí abre una sesión de trabajo preparada para tu proyecto. Por eso muchas personas lo relacionan mentalmente con entrar a un espacio activo de trabajo.
venv\Scripts\activateCuando lo activas, la terminal cambia y suele mostrar algo así:
(venv) C:\ruta\de\tu\proyecto>Eso significa que estás trabajando dentro de ese entorno. No es una instancia en el sentido estricto del intérprete, pero sí una sesión activa de trabajo para tu proyecto.
Ejemplo 8: cerrar esa sesión del entorno virtual
Para salir del entorno virtual, usa este comando:
deactivateCon eso vuelves a tu terminal normal.
Qué debes sacar en limpio de estos ejemplos
La idea principal es esta: una instancia suele entenderse como una ejecución activa, una sesión abierta o un proceso funcionando. En Python, el ejemplo más fácil de visualizar es abrir el intérprete con py, usarlo mientras aparece >>> y luego cerrarlo con exit().
Para proyectos y scripts normales, lo más útil sigue siendo pensar en carpeta, entorno virtual, script y ejecución. La palabra instancia te será más útil cuando veas herramientas, procesos o servicios que pueden abrir varias sesiones separadas al mismo tiempo.
Cómo se usa una instancia
En programación, una instancia se usa cuando algo se pone en funcionamiento. Por ejemplo, cuando ejecutas un script de Python, se inicia una ejecución del intérprete. Cuando una aplicación abre una sesión de trabajo aislada, también puede decirse que ha levantado una instancia.
Sin embargo, para trabajar con scripts normales en Python, el usuario casi nunca necesita crear instancias manualmente. Lo que realmente hace es ejecutar comandos, activar entornos virtuales y abrir proyectos.
Cuándo usar el término instancia
Conviene usar este término cuando hablas de una ejecución activa, una sesión separada o un proceso en funcionamiento. Es útil, por ejemplo, en temas como servidores, bases de datos, máquinas virtuales, contenedores, herramientas con sesiones aisladas o asistentes que trabajan en entornos separados.
En cambio, si estás creando un proyecto pequeño con uno o varios scripts de Python, normalmente no necesitas pensar en instancias para organizar tu trabajo. En ese caso, lo importante es tener clara la estructura del proyecto y el uso del entorno virtual.
Cómo suelen usar las instancias los programadores
Los programadores suelen hablar de instancias sobre todo en escenarios más técnicos. Por ejemplo, cuando ejecutan varias copias de una aplicación, cuando lanzan procesos independientes, cuando trabajan con servidores o cuando una herramienta crea sesiones separadas para distintas tareas.
En desarrollo común de Python, es más habitual que los programadores digan proyecto, entorno virtual, proceso o ejecución, en lugar de usar la palabra instancia para todo. Por eso, si estás empezando, no conviene obsesionarse con ese término.
En qué casos conviene usar instancias
Las instancias convienen cuando necesitas separar ejecuciones, aislar tareas o levantar varias sesiones independientes. Esto suele ser útil en automatizaciones complejas, pruebas paralelas, herramientas de desarrollo asistido, servidores, aplicaciones en la nube o procesos que deben ejecutarse sin interferir entre sí.
Si solo estás creando scripts sencillos o proyectos personales pequeños, normalmente no necesitas organizarte pensando en instancias. Te bastará con separar bien tus carpetas de proyecto y usar un entorno virtual por proyecto.
Para un proyecto y para un script
Si trabajas con un proyecto, lo recomendable es pensar así: una carpeta para el proyecto, un entorno virtual para sus librerías y los scripts necesarios dentro de esa misma estructura. En ese nivel, hablar de instancia no suele ser lo más útil.
Si trabajas con un script suelto, todavía menos. Lo normal es simplemente ejecutar el archivo cuando lo necesites. Allí tampoco hace falta pensar en instancias, salvo que estés usando una plataforma o herramienta que internamente gestione sesiones separadas.
Por eso, para un principiante, la mejor regla es esta: para organizar tu trabajo, piensa primero en proyecto, carpeta, entorno virtual y script. Deja la palabra instancia para contextos más avanzados o para herramientas específicas que realmente funcionen por sesiones o ejecuciones aisladas.
Conclusión
Aprender a usar entornos virtuales en Python no es complicado, pero sí marca una gran diferencia en la forma de trabajar. Un entorno virtual te ayuda a mantener orden, evitar conflictos y proteger tus proyectos frente a cambios innecesarios en el sistema.
La idea clave es muy sencilla: no crees un entorno por cada script, sino por cada proyecto. Si además guardas tus dependencias en requirements.txt, podrás reconstruir tu entorno en cualquier momento y trabajar con mucha más tranquilidad.
Si estás empezando con Python, esta es una de las mejores costumbres que puedes adoptar desde ahora.