Hace unos meses dejé de usar pipenv y volví a los clásicos entornos virtuales de python, donde no tengo que lidiar con archivos como Pipfile o Pipfile.lock.

La idea detrás de pipenv me gustaba, pero la implementación me dio muchos dolores de cabeza. Por ejemplo, cuando instalas una dependencia nueva la herramienta se queda trabajando varios minutos:

Mi mayor preocupación con esto es la sensación de no saber qué está pasando por detrás de ese proceso, esperar tanto tiempo y luego verlo fallar me pasó tantas veces que ya había empezado a odiar la herramienta.

Volver a los entornos virtuales de toda la vida fue un alivio para mí. Siento que es más claro lo que está haciendo la computadora en cada comento y tengo una “capa” menos entre mi proyecto y mi herramienta de trabajo.

Sin embargo en la transición me había quedado sin una característica útil: pipenv me daba la posibilidad de poner la configuración de mis proyectos en un archivo .env y se encargaba de levantar esa configuración automáticamente.

Tener la configuración en variables de entorno es algo muy útil, porque te da la posibilidad de levantar la aplicación en diferentes entornos sin necesidad de configurar manualmente ningún archivo.

Así que me puse a buscar una forma de recuperar esta posibilidad de poner la configuración en un archivo .env y encontré esta biblioteca:

Usar esta herramienta es muy fácil, primero tuve que instalar el paquete así:

pip install "python-dotenv[cli]"

y después simplemente tuve que llamar a mis scripts de python con el prefijo dotenv run --.

Por ejemplo:

dotenv run -- python manage.py runserver

Me siento cómodo con la idea de abandonar la complejidad de pipenv, creo que de esa forma puedo adoptar utilidades pequeñas y puntuales como dotenv para hacer las cosas lo más simple posible.