Saltar a contenido

Entornos Virtuales en Python con venv

Los entornos virtuales son una herramienta esencial en Python para gestionar dependencias de proyectos de forma aislada, evitando conflictos entre versiones de los paquetes usados en un proyecto.

El módulo venv está integrado en la librería estándar de Python y permite crear estos entornos sin necesidad de instalar herramientas externas.

Funcionamiento

Un entorno virtual es una carpeta aislada que se añade como subcarpeta a nuestro proyecto y que contiene una copia del intérprete de Python y los paquetes con las dependencias del proyecto.

Cada proyecto puede tener su propio entorno, lo que permite:

  • Instalar versiones específicas de bibliotecas (ej. NumPy 1.20 en un proyecto y 1.25 en otro) sin afectar la instalación global de Python.
  • Evitar conflictos en entornos compartidos (ej. servidores o equipos de desarrollo).
  • Facilitar la reproducibilidad: Puedes compartir un archivo requirements.txt para que otros recrean el entorno exacto.
  • Ventajas: Limpieza, seguridad (no modifica el Python del sistema), y portabilidad.
  • Desventajas: Ocupa espacio en disco (pero es mínimo).
  • Cuándo usarlo: Siempre en proyectos reales, especialmente si se usa pip para instalar paquetes no incluidos en la librería estándar.

Requisitos

  • Python instalado (versión 3.3 o superior). Verifica con python --version en la terminal.
  • En Windows: se pueden crear con el Símbolo del sistema (cmd.exe), PowerShell, o GitBash.
  • En Linux/Mac: se usa el terminal (bash o similar).
  • No se necesitan permisos de administrador para crear entornos virtuales. De hecho, se recomienda crearlos con usuario sin privilegios

Creando un Entorno Virtual con venv

Paso 1. Agregando la carpeta del entorno a .gitignore

Cuando creemos el proyecto se van a añadir una serie de archivos y carpetas que no es necesario que se sincronicen el repositorio si estamos usando git.

Normalmente la carpeta del entorno virtual la llamamos .venv, pero le podemos poner el nombre que queramos. Si le vamos a poner ese nombre creamos o editamos el fichero .gitignore que se encuentra en la carpeta de inicio del proyecto y le añadimos la siguiente línea:

.venv/

Paso 2. Creando el entorno virtual

  • Abrimos un terminal y navega a la carpeta de inicio del proyecto (ej. cd ruta/a/tu/proyecto).
  • Ejecuta el comando para crear el entorno:

    • General: python -m venv nombre_entorno (reemplaza nombre_entorno por algo como .venv).
    • En Windows: python -m venv .venv.
    • En Linux/Mac: python3 -m venv .venv

Esto crea una carpeta llamada .venv (o el nombre que elijas) con subcarpetas como bin (o Scripts en Windows), lib e include.

Paso 3. Activar el Entorno Virtual

Una vez creado, debes activarlo para usarlo. Esto cambia temporalmente el PATH de tu terminal para que use el Python y pip del entorno.

En la terminal, ejecuta: - Windows (cmd.exe): .venv\Scripts\activate.bat. - Windows (PowerShell): .venv\Scripts\Activate.ps1 (si da error de permisos, ejecuta Set-ExecutionPolicy RemoteSigned una vez como admin). - Linux/Mac: source .venv/bin/activate.

Verás un prefijo en la terminal como (.venv), indicando que está activo.

En IDES como VSCode o PyCharm, estos IDE detectan entornos virtuales automáticamente y los activan al abrir el proyecto.

Paso 4. Trabajar dentro del Entorno

Con el entorno activo:

  • Instalamos paquetes con pip install paquete (ej. pip install coverage).
  • Verifica instalaciones con pip list (debería mostrar solo paquetes base como pip y setuptools al inicio).
  • Ejecuta scripts de Python como de costumbre: python mi_script.py.

Paso 5. Reproducir el entorno virtual

El entorno virtual debería contener todo lo que nuestro proyecto necesita para ejecutarse. Si queremos ejecutar nuestro proyecto en otro equipo seguimos los siguientes pasos:

  • Generar requirements.txt: volcamos en un archivo la información de dependencias de nuestro poryecto, para ello ejecutamos pip freeze > requirements.txt. Esto crea un archivo con la lista de paquetes instalados y sus versiones.

En el otro equipo, clonamos el repositorio que incluira en la carpeta de incio el fichero requirements.txt:

  • Instalamos las dependencias desde requirements.txt: En un nuevo entorno, usa pip install -r requirements.txt.

Cada vez que añadimos o modificamos dependencias en nuestro proyecto deberíamos ejecutar pip freeze > requirements.txt para que esté actualizado

Paso 6. Desactivar el Entorno Virtual

Simplemente ejecuta:

deactivate
En un terminal (funciona en todas las plataformas).

El prefijo (.venv) desaparecerá, y volverás a usar el Python global.

Si queremos actualizar paquetes en el entorno, usamos pip install --upgrade paquete.