DEV Community

Juan M. Núñez
Juan M. Núñez

Posted on

Archivo .env para las variables de entorno en Python

En mi último proyecto personal he necesitado almacenar la clave de una API de forma segura. La forma más recomendable de hacerlo parece ser almacenarlas como variables de entorno. Dado que almacenar multitud de variables de entorno de distintos proyectos en mi máquina resulta un engorro, he dado con una alternativa sencilla con la que manejar esta situación.

La solución pasa por utilizar el módulo python-dotenv, que da soporte a nuestro código para utilizar variables almacenadas en un archivo .env independiente como si se trataran de variables de entorno habituales.

El proceso es muy sencillo...

1. Crear el archivo .env y dar valor a las variables.

En primer lugar creamos un archivo .env en el que almacenamos las variables:

# Definimos las variables en el archivo .env
VARIABLE1 = "Valor 1"
VARIABLE2 = "Valor 2"
Enter fullscreen mode Exit fullscreen mode

Este archivo puede ser creado tanto en la carpeta raíz como en otra ubicación dentro de nuestro proyecto.

2. Importar el módulo dotenv.

Importamos el módulo dotenv, y en concreto la función load_dotenv en nuestro proyecto. También tendremos que importar el módulo os para importar las variables de entorno una vez cargado el contenido del .env:

from dotenv import load_dotenv
import os
Enter fullscreen mode Exit fullscreen mode

Dado que no es un módulo nativo de Python, requiere ser instalado por medio de Pip, con el comando pip install python-dotenv.

3. Recuperar las variables.

La función load_dotenv() carga las variables al programa como variables de entorno. Con el módulo os podemos recuperar sus valores y asignárselos a variables dentro del proyecto:

# Cargamos las variables del archivo como variables de entorno.
load_dotenv() 

# Se almacena el valor "Valor 1" de la primera variable.
VARIABLE1 = os.getenv("VARIABLE1")  

# Otra forma de recuperar el valor de la variable.
VARIABLE2 = os.environ.get("VARIABLE2")  
Enter fullscreen mode Exit fullscreen mode

Si el archivo .env no se encuentra en la misma ruta en la que se ejecuta el código, debemos definir la ubicación del archivo:

load_dontenv(path="ruta/.env")
Enter fullscreen mode Exit fullscreen mode

Top comments (0)