¿Qué es un entorno virtual?
Un entorno virtual es un entorno aislado para un proyecto Python que tiene su propio conjunto de paquetes instalados. Es como una habitación separada para cada proyecto, donde solo viven las bibliotecas que necesita.
¿Por qué es necesario el aislamiento?
Sin entornos virtuales, todos los paquetes se instalan globalmente en el sistema. Esto conduce a problemas:
Conflictos de versiones. Diferentes proyectos pueden requerir diferentes versiones de la misma biblioteca. Sin aislamiento, tendrás que elegir una versión para todos.
Contaminación del sistema. Con el tiempo, se acumulan muchos paquetes no utilizados que son difíciles de rastrear y eliminar.
Problemas de reproducibilidad. Cuando un compañero o tú mismo intentas ejecutar un proyecto en otro ordenador, es difícil saber qué paquetes se necesitan.
Creamos el primer entorno virtual
Python viene con un módulo integrado venv, que te permite crear entornos virtuales sin instalar herramientas adicionales.
Abre la terminal en la carpeta de tu proyecto y ejecuta el comando:
python -m venv venvAquí, la primera palabra venv es el nombre del módulo y la segunda es el nombre de la carpeta para el entorno. Puedes usar cualquier nombre, pero venv o .venv se han convertido en el estándar de facto.
Después de ejecutar el comando, aparecerá la carpeta venv con la siguiente estructura:
venv/
├── bin/ # scripts de activación (en Windows — Scripts/)
├── include/ # archivos de encabezado
├── lib/ # paquetes instalados
└── pyvenv.cfg # configuración del entornoActivación y desactivación
Crear un entorno no es suficiente, debe activarse. Después de la activación, todos los comandos pip y python funcionarán dentro de este entorno.
En Linux y macOS:
source venv/bin/activateEn Windows:
venv\Scripts\activateDespués de la activación, aparecerá (venv) al principio de la línea del terminal, lo que significa que el entorno está activo.
Para salir del entorno virtual, simplemente escriba:
deactivateInstalando paquetes
Ahora que el entorno está activado, puedes instalar las bibliotecas necesarias:
pip install requests
pip install django==4.1Todos los paquetes se instalarán en la carpeta venv/lib, no en el sistema. Puede verificar la lista de paquetes instalados con el comando:
pip listArchivo requirements.txt
Para que otros desarrolladores (o tú mismo en otro equipo) puedan recrear fácilmente el entorno, se utiliza el archivo requirements.txt. Este es un archivo de texto simple con una lista de todas las dependencias del proyecto.
Se puede crear con el comando:
pip freeze > requirements.txtEl contenido del archivo será similar a esto:
requests==2.28.1
Django==4.1.0
certifi==2022.9.24Ahora cualquiera puede instalar todos los paquetes necesarios con un solo comando:
pip install -r requirements.txt
Alternativas a venv
Aunque venv está incluido en la biblioteca estándar de Python, existen otras herramientas para trabajar con entornos virtuales:
virtualenv — una herramienta más antigua que admite funciones adicionales y funciona más rápido en algunos sistemas.
pipenv — combina la gestión de dependencias y entornos virtuales, utiliza archivos Pipfile en lugar de requirements.txt.
poetry — un gestor de dependencias moderno con gestión avanzada de proyectos y publicación de paquetes.
conda — popular en Data Science, ya que puede instalar no solo paquetes de Python, sino también bibliotecas del sistema.
Para los desarrolladores principiantes, venv sigue siendo la mejor opción debido a su simplicidad y a que no es necesario instalar nada adicional.
Solución de problemas típicos
¿El entorno no se activa en Windows? Es posible que necesite habilitar la ejecución de scripts. Ejecute PowerShell como administrador y ejecute:
Set-ExecutionPolicy RemoteSigned¿El comando de Python no funciona? En algunos sistemas, debe usar python3 en lugar de python.
¿Has olvidado si el entorno está activado? Comprueba con el comando which python (Linux/macOS) o where python (Windows). La ruta debe apuntar a la carpeta de tu entorno virtual.
Conclusión
Los entornos virtuales son una herramienta básica para cualquier desarrollador de Python. Resuelven muchos problemas y hacen que el trabajo en los proyectos sea más cómodo y predecible. Tómate un tiempo para dominar esta técnica y te dará sus frutos en tus futuros proyectos.
¿Quieres aprender Python más a fondo?
Te invitamos a Kodik — aquí encontrarás cursos estructurados para desarrolladores de cualquier nivel. Y también tenemos un genial canal de Telegram con una comunidad amistosa donde puedes hacer preguntas, compartir experiencias y obtener apoyo de personas de ideas afines.
