Saltar al contenido

Uso de entornos virtuales Python 3 con venv en Windows

Desde que empecé a usar Python hace un par de años, siempre he buscado hacer mi entorno de desarrollo ágil y fácil. El uso de entornos virtuales en Python es una buena opción para quienes quieren tener un control de las dependencias de cada proyecto, entre otras cosas. En este artículo, te voy a contar cómo instalar un entorno virtual con el comando `venv`, cómo activarlo, cómo hacer una copia de tus dependencias y cómo restaurarlas si llevas el proyecto a otro lugar.

Este tutorial se enfoca en los usuarios de Windows, aunque el uso de `venv` es muy parecido en Linux y Mac OS. También incluiré los comandos para estos entornos.

Cómo usar venv para tus proyectos

Vamos a ver los comandos más comunes para trabajar con `venv`.

Requisitos previos

Primero, debes tener instalado Python y que sea accesible a nivel global. Puedes seguir el tutorial de cómo instalar Python 3 en Windows.

Instalación de un entorno virtual con venv

`venv` es un paquete incluido en Python 3 por defecto. Para instalar el entorno virtual, ve a la ruta donde vas a trabajar tu proyecto con el explorador de Windows. Haz clic derecho en el fondo de la carpeta y elige “Abrir en terminal”.

Esto abrirá la terminal de Windows en la ruta adecuada. Una vez en la terminal, ejecuta el siguiente comando:

python -m venv venv

Esto creará una subcarpeta llamada ‘venv’ en tu proyecto con el entorno virtual.

Activación del entorno virtual

Una vez instalado el entorno virtual, hay que activarlo. Para ello, mantente en la carpeta del proyecto y ejecuta el siguiente comando en caso de que uses Windows:

venv\Scripts\activate

En Linux o Mac el comando es el siguiente:

source venv/bin/activate

Si el entorno se está ejecutando correctamente, verás en la consola el indicativo (venv), lo que significa que tu entorno está funcionando correctamente.

Instalación de dependencias y uso del archivo requirements.txt

La principal ventaja de usar entornos virtuales es que cada entorno puede tener sus dependencias y versiones de ellas aisladas entre sí. De esta forma, si en un proyecto usas una versión de una librería y en otro usas una versión distinta, puedes trabajar cada proyecto con sus versiones sin problemas.

Instalación de dependencias

Por ejemplo, si necesitas las librerías `requests` y `python-dotenv` para un proyecto, puedes instalarlas con el siguiente comando:

pip install requests python-dotenv

Guardado y restauración de dependencias en el archivo requirements.txt

Para guardar las dependencias, ejecuta el siguiente comando:

pip freeze > requirements.txt

Esto creará un archivo requirements.txt con los paquetes instalados y sus versiones. En el caso de mi ejemplo, este es el resultado:

Ahora, cada vez que instales nuevos paquetes, actualices los que hay o elimines alguno, tienes que usar este comando para actualizar el archivo requirements.txt. De esta forma, guardarás todos los paquetes y versiones. Esto es muy útil por si llevas el proyecto a otro lugar o quieres retomarlo después de un tiempo. Con el tiempo, pueden cambiar las versiones de los paquetes y puede que con las nuevas versiones no funcione nuestro programa. Por ejemplo, si empezamos el proyecto de nuevo y no tenemos el entorno virtual instalado, solo tenemos que instalarlo, activarlo y restaurar las dependencias con el siguiente comando:

pip install -r requirements.txt

Desactivación del entorno virtual

Después de trabajar con el proyecto puedes desactivar el entorno virtual con el siguiente comando.

deactivate

Qué es venv

`venv` es el entorno virtual “oficial” y está incluido en el paquete base de Python 3, por eso y por su fácil uso yo lo recomiendo. En la propia documentación de Python se puede ver lo siguiente sobre `venv`:

El módulo `venv` admite la creación de «entornos virtuales» ligeros, cada uno con su propio conjunto independiente de paquetes de Python instalados en sus directorios site. Se crea un entorno virtual sobre una instalación existente de Python, conocida como la «base» del entorno virtual de Python y, opcionalmente, se puede aislar de los paquetes en la base del entorno, así que solo están disponibles los instalados explícitamente en el entorno virtual.

Cuando se usa desde dentro de un entorno virtual, herramientas de instalación comunes como `pip` instalarán paquetes de Python en el entorno virtual sin necesidad de indicarlo explícitamente.

Un entorno virtual es (entre otras cosas):

  • Utilizado para contener un intérprete específico de Python y bibliotecas y binarios de software que se necesitan para apoyar un proyecto (biblioteca o aplicación). Estos están, por defecto, aislados del software en otros entornos virtuales y de los intérpretes y bibliotecas de Python instalados en el sistema operativo.
  • Contenido en un directorio, convencionalmente llamado `venv` o `.venv` en el directorio del proyecto, o bajo un directorio contenedor para muchos entornos virtuales, como `~/.virtualenvs`.
  • No incluido en sistemas de control de versiones como Git.
  • Considerado desechable: debe ser simple de eliminar y recrear desde cero. No se coloca ningún código del proyecto en el entorno.
  • No considerado movible o copiable: simplemente se recrea el mismo entorno en la ubicación de destino.

Recomendaciones extras con respecto a la documentación oficial

Creo que la mejor forma de tener todo el proyecto a mano es que el entorno virtual esté en la misma carpeta del proyecto. En mi caso y en este tutorial la ruta es: ruta del proyecto/venv.

Si trabajas con Git, recuerda añadir a `.gitignore` la ruta para no tener que subir el entorno virtual a tu repositorio.

Compartir este Articulo