¿Cuál es el propósito de 'venv' en Python?

El propósito de 'venv' en Python: Crear entornos Python aislados para diferentes proyectos

El módulo 'venv' o "Virtual Environment" (Entorno Virtual) en Python, es una herramienta esencial para cualquier desarrollador Python, principalmente porque está diseñada con el propósito de crear entornos Python aislados para diferentes proyectos. Estos entornos virtuales, permiten al programador mantener independencia y aislamiento entre los requerimientos y dependencias de los diferentes proyectos.

Para entenderlo mejor, supongamos que estás trabajando en dos proyectos diferentes: "ProyectoA", que requiere la versión 1.x de una biblioteca, y "ProyectoB", que necesita la versión 2.x de la misma biblioteca. Aquí es donde 'venv' resulta extremadamente útil. Puedes crear dos entornos virtuales distintos para cada proyecto, y cada uno puede tener su propia versión de la biblioteca sin interferir con el otro.

Así es como se crea un nuevo entorno virtual en Python con 'venv':

python3 -m venv /ruta/para/mi/entornovirtual

Una vez creado, se puede "activar" el entorno virtual utilizando:

  • En Windows:
.\mi_entornovirtual\Scripts\activate
  • En Unix o MacOS:
source mi_entornovirtual/bin/activate

Una vez activado el entorno, verás que el nombre de tu entorno virtual aparece al principio de la línea de comandos, indicando que cualquier paquete que instales a partir de ahora se instalará sólo en este entorno.

Las buenas prácticas para el uso de 'venv' incluyen la utilización de diferentes entornos virtuales para separar las dependencias de los diferentes proyectos y siempre activar el entorno virtual antes de empezar el desarrollo.

En resumen, el módulo 'venv' en Python se utiliza específicamente para crear entornos de desarrollo aislados. Esta práctica es crucial para una buena gestión de proyectos y para evitar conflictos entre dependencias y librerías. 'Venv' es sin duda una herramienta imprescindible en la caja de herramientas de cualquier programador Python.

¿Te resulta útil?