Archivos .env en Python

Manejando variables de entorno con python-dotenv

David Castro
2 min readMay 12, 2021
Photo by Chris Ried on Unsplash

🖥️ ¿Qué es un archivo .env?

Un archivo .env no es más que un archivo de texto donde se definen una serie de variables de entorno a las cuales les asignamos un valor y que se agrega en el directorio raíz de un proyecto.

.
├── .env
└── foo.py

📄 .env

API_KEY=api_key
API_SECRET_KEY=api_secret_key
ACCESS_TOKEN=access_token
ACCESS_TOKEN_SECRET=access_token_secret

Lo usamos cuando queremos aplicar buenas practicas a nuestro código, recordemos que no es una buena idea guardar este tipo de datos en scripts que se suban a un repositorio. Por esto debemos recordar que al usar archivos .env debemos agregar al archivo .gitignore el archivo .env para evitar subirlo al repositorio y revelar información sensible.

A veces las aplicaciones guardan configuraciones como constantes en el código, lo que conduce a una violación de la metodología “twelve-factor”, que requiere una estricta separación de la configuración y el código. La configuración varía sustancialmente en cada despliegue, el código no. La prueba de fuego para saber si una aplicación tiene toda su configuración correctamente separada del código es comprobar que el código base puede convertirse en código abierto en cualquier momento, sin comprometer las credenciales.

🐍 Usar archivos .env en Python

Una manera de usar los archivos .env en Python es haciendo uso de la la librería python-dotenv, para instalarla basta con ejecutar en consola:

pip install python-dotenv

Python-dotenv lee pares clave-valor de un archivo .env y puede configurarlos como variables de entorno. Ayuda en el desarrollo de aplicaciones siguiendo los principios de los 12 factores.

Para usarla importamos la librería y damos uso a las variables que definamos con la función os.getenv()

import os
from dotenv import load_dotenv
load_dotenv()consumer_key = os.getenv('API_KEY')
consumer_secret = os.getenv('API_SECRET_KEY')
access_token = os.getenv('ACCESS_TOKEN')
access_token_secret = os.getenv('ACCESS_TOKEN_SECRET')

Referencias

--

--

David Castro
David Castro

Written by David Castro

🚀 Software Engineer with a master’s in Software Development, working as a 🖥️ Backend Developer using 🐍 Python.

No responses yet