2 usuarios conectados

Módulos y paquetes. Entornos virtuales (venv)

Comparte esto

Ahora vamos a explorar los entornos virtuales en Python, específicamente utilizando el módulo venv que viene integrado con Python 3. Los entornos virtuales son una práctica fundamental para aislar las dependencias de diferentes proyectos de Python, evitando conflictos y asegurando la reproducibilidad.

¿Qué son los Entornos Virtuales?

Un entorno virtual es un directorio aislado que contiene una instalación de Python específica, así como todas las bibliotecas (paquetes) que se hayan instalado en ese entorno. Esto significa que cada proyecto puede tener sus propias dependencias, sin interferir con las dependencias de otros proyectos o con la instalación global de Python en tu sistema.

¿Por qué usar Entornos Virtuales?

Uso de venv (para Python 3):

El módulo venv es la herramienta estándar para crear entornos virtuales en Python 3. Aquí te mostramos cómo usarlo:

  1. Crear un entorno virtual:

    Abre tu terminal o símbolo del sistema y navega hasta el directorio de tu proyecto (o donde quieras crear el entorno virtual). Luego, ejecuta el siguiente comando:

    Bash
     
    python3 -m venv nombre_del_entorno
    

    Reemplaza nombre_del_entorno con el nombre que quieras darle a tu entorno virtual (por convención, a menudo se usa .venv o env). Esto creará un directorio con el nombre especificado, que contendrá una copia de Python, pip y algunas bibliotecas base.

    Ejemplo:

    Bash
     
    python3 -m venv .venv
    

    Esto creará un directorio llamado .venv en tu directorio actual.

  2. Activar el entorno virtual:

    Debes activar el entorno virtual para que tu shell utilice la instalación de Python y pip dentro del entorno, en lugar de la instalación global del sistema. La forma de activar el entorno depende de tu sistema operativo:

    Una vez que el entorno virtual esté activado, verás el nombre del entorno (por ejemplo, (.venv)) al principio de tu línea de comandos, indicando que estás trabajando dentro del entorno virtual.

  3. Instalar paquetes dentro del entorno virtual:

    Con el entorno virtual activado, cualquier paquete que instales usando pip se instalará solo dentro de ese entorno virtual. No afectará a tu instalación global de Python ni a otros entornos virtuales.

    Ejemplo: Para instalar la biblioteca requests en tu entorno virtual activado:

    Bash
     
    pip install requests
    
  4. Ver los paquetes instalados en el entorno virtual:

    Puedes usar pip list para ver los paquetes instalados dentro de tu entorno virtual. Verás solo los paquetes que has instalado específicamente para este proyecto, además de algunas dependencias básicas como pip y setuptools.

    Bash
     
    pip list
    
  5. Desactivar el entorno virtual:

    Cuando termines de trabajar en tu proyecto y quieras volver a tu entorno global o a otro entorno virtual, puedes desactivar el entorno virtual actual con el siguiente comando:

    Bash
     
    deactivate
    

    Tu línea de comandos volverá a la normalidad, sin el prefijo del nombre del entorno virtual.

Flujo de Trabajo Típico:

  1. Navega al directorio de tu proyecto.
  2. Crea un entorno virtual: python3 -m venv .venv
  3. Activa el entorno virtual: source .venv/bin/activate (macOS/Linux) o .venv\Scripts\activate (Windows).
  4. Instala las dependencias de tu proyecto: pip install -r requirements.txt (si tienes un archivo de requisitos) o pip install paquete1 paquete2 ....
  5. Trabaja en tu proyecto.
  6. Cuando termines, desactiva el entorno virtual: deactivate.

Otras Herramientas para Entornos Virtuales:

Además de venv, existen otras herramientas populares para gestionar entornos virtuales en Python:

Sin embargo, para la mayoría de los proyectos básicos de Python 3, venv es suficiente y es la herramienta recomendada por la documentación oficial de Python.

En resumen, los entornos virtuales son una práctica esencial para mantener tus proyectos de Python aislados y gestionados de manera eficiente. Utilizar venv (o una herramienta similar) te ayudará a evitar problemas de dependencias y a asegurar la consistencia de tus proyectos en diferentes entornos.