I. Visión general

En esta publicación del blog, exploraremos cómo usar pyenv-virtualenv y autoenv juntos para un desarrollo de Python sin interrupciones. Estas herramientas pueden ayudarte a administrar múltiples entornos y entornos virtuales de Python con facilidad, mejorando tu flujo de trabajo de desarrollo.

II. Pyenv-virtualenv

Pyenv-virtualenv es un plugin para pyenv que te permite crear y administrar entornos virtuales para diferentes versiones de Python. Te ayuda a mantener las dependencias de diferentes proyectos separadas, asegurando que cada proyecto tenga acceso a los paquetes que requiere sin interferencias.

Creación de un entorno virtual

Para crear un nuevo entorno virtual usando pyenv-virtualenv, usa el siguiente comando:

pyenv virtualenv <python-version> <virtualenv-name>

Por ejemplo, si deseas crear un entorno virtual llamado my_project usando Python 3.8.0:

pyenv virtualenv 3.8.0 my_project

Listado de entornos virtuales

Para listar todos los entornos virtuales que has creado, usa el siguiente comando:

pyenv virtualenvs

Activación de un entorno virtual

Para activar un entorno virtual, usa el siguiente comando:

pyenv activate <virtualenv-name>

Por ejemplo:

pyenv activate my_project

Desactivación de un entorno virtual

Para desactivar el entorno virtual actual, usa el siguiente comando:

pyenv deactivate

III. Autoenv

Autoenv es una herramienta que activa automáticamente un entorno virtual cuando ingresas a un directorio que contiene un archivo .env. Esto facilita el cambio entre proyectos sin tener que recordar activar y desactivar los entornos virtuales manualmente.

Configuración de Autoenv

Para usar autoenv, debes crear un archivo .env en el directorio raíz de tu proyecto. Este archivo contendrá los comandos que se deben ejecutar cuando ingreses al directorio.

Por ejemplo, supongamos que tienes un proyecto ubicado en ~/projects/my_project y quieres usar el entorno virtual my_project creado anteriormente. Crea un archivo .env en el directorio ~/projects/my_project con el siguiente contenido:

source $(pyenv root)/versions/my_project/bin/activate

Uso de Autoenv

Ahora, cuando navegues al directorio del proyecto, autoenv activará automáticamente el entorno virtual my_project para ti:

cd ~/projects/my_project

Deberías ver un mensaje que indique que el entorno virtual se ha activado:

autoenv: Activating environment . . .
(my_project) $

Cuando salgas del directorio del proyecto, el entorno virtual se desactivará automáticamente:

cd ~

Deberías ver un mensaje que indique que el entorno virtual se ha desactivado:

autoenv: Deactivating environment . . .
$

IV. Conclusión

Al combinar pyenv-virtualenv y autoenv, puedes crear un flujo de trabajo de desarrollo sin interrupciones para administrar múltiples proyectos de Python. Este enfoque garantiza que siempre uses el entorno virtual correcto para cada proyecto, y también mantiene tus dependencias separadas y organizadas.