<!DOCTYPE html>
Archivo .env para Variables de Entorno en Python
<br> body {<br> font-family: sans-serif;<br> line-height: 1.6;<br> }</p> <div class="highlight"><pre class="highlight plaintext"><code>h1, h2, h3 { margin-top: 2em; } code { background-color: #f0f0f0; padding: 0.2em; border-radius: 3px; font-family: monospace; } pre { background-color: #f0f0f0; padding: 1em; border-radius: 3px; overflow-x: auto; } img { max-width: 100%; display: block; margin: 1em auto; } </code></pre></div> <p>
Archivo .env para Variables de Entorno en Python
Introducción
Las variables de entorno son una forma fundamental de configurar aplicaciones en cualquier lenguaje de programación, y Python no es la excepción. Estas variables almacenan información sensible, como claves de API, credenciales de bases de datos o rutas de archivos, que no deberían incluirse directamente en el código fuente. El archivo
.env
surge como una práctica común para gestionar estas variables de manera eficiente y segura.
¿Por qué usar un archivo .env?
Utilizar un archivo
.env
para las variables de entorno ofrece numerosos beneficios:
- Seguridad: Evita la exposición de información confidencial en el código fuente.
- Organización: Centraliza la configuración de la aplicación en un solo lugar.
- Flexibilidad: Permite ajustar la configuración de forma independiente para diferentes entornos (desarrollo, prueba, producción).
-
Facilidad de uso: Permite cargar las variables de entorno de manera sencilla en el entorno de ejecución.
Instalación y Uso
Para trabajar con archivos.env
en Python, se requiere una biblioteca externa llamada "python-dotenv". Se instala fácilmente mediante pip:
pip install python-dotenv
- Crear el archivo .env
Crea un archivo llamado .env
en la raíz de tu proyecto. Cada línea de este archivo debe contener una variable de entorno en el formato NOMBRE_DE_LA_VARIABLE=VALOR
. Por ejemplo:
DATABASE_URL=postgresql://user:password@host:port/database
API_KEY=tu_clave_api
DEBUG=True
- Cargar las variables de entorno
Importa la biblioteca dotenv
y usa la función load_dotenv()
para cargar las variables desde el archivo .env
en el entorno actual:
from dotenv import load_dotenv
import os
# Cargar las variables de entorno
load_dotenv()
# Acceder a las variables de entorno
database_url = os.getenv('DATABASE_URL')
api_key = os.getenv('API_KEY')
debug = os.getenv('DEBUG')
print(f"Base de datos: {database_url}")
print(f"API Key: {api_key}")
print(f"Modo Debug: {debug}")
- Ignorar el archivo .env en el control de versiones
Es fundamental agregar el archivo .env
a tu archivo .gitignore
para evitar que se publique en el repositorio de código fuente. Esto previene la exposición accidental de las variables de entorno.
# Ignorar el archivo .env
.env
- Variables de entorno específicas para el entorno
Para diferentes entornos (desarrollo, pruebas, producción), se pueden crear archivos .env
separados y cargar el archivo correspondiente según sea necesario. Por ejemplo, puedes tener un archivo .env.development
y otro .env.production
, cada uno con la configuración específica para ese entorno.
import os
from dotenv import load_dotenv
# Cargar las variables de entorno para el entorno actual
env_file = os.path.join(os.path.dirname(__file__), f".env.{os.environ.get('ENV', 'development')}")
load_dotenv(dotenv_path=env_file)
# Acceder a las variables de entorno
database_url = os.getenv('DATABASE_URL')
# ...
Ejemplos Prácticos
Ejemplo 1: Conexión a una base de datos
from dotenv import load_dotenv
import os
import psycopg2
load_dotenv()
# Obtener las credenciales de la base de datos desde el archivo .env
database_url = os.getenv('DATABASE_URL')
# Establecer la conexión a la base de datos
conn = psycopg2.connect(database_url)
# Ejecutar consultas
cursor = conn.cursor()
cursor.execute("SELECT * FROM my_table")
results = cursor.fetchall()
# Cerrar la conexión
cursor.close()
conn.close()
Ejemplo 2: Utilizar una API
from dotenv import load_dotenv
import os
import requests
load_dotenv()
# Obtener la clave de la API desde el archivo .env
api_key = os.getenv('API_KEY')
# Realizar una solicitud a la API
url = 'https://api.example.com/data'
headers = {'Authorization': f'Bearer {api_key}'}
response = requests.get(url, headers=headers)
# Procesar la respuesta
if response.status_code == 200:
data = response.json()
# ...
else:
print(f"Error: {response.status_code}")
Conclusión
El archivo
.env
es una herramienta fundamental para gestionar las variables de entorno en proyectos de Python. Su uso proporciona numerosos beneficios como la seguridad, la organización y la flexibilidad en la configuración. Asegúrate de seguir las mejores prácticas al usar archivos .env
, como ignorarlos en el control de versiones y crear archivos específicos para cada entorno.