Ficheros .env
El patrón .env es el estándar para gestionar configuración y secretos en proyectos Python. Simple, seguro y omnipresente.
1. ¿Qué es un fichero .env?
Es un fichero de texto plano donde guardas variables de configuración en formato CLAVE=VALOR. La clave es que nunca se sube a GitHub — es local a tu máquina.
Fichero .env (local, privado)
OPENAI_API_KEY=sk-proj-abc123...
DATABASE_URL=postgresql://user:pass@localhost/db
DEBUG=true
APP_ENV=development
SECRET_TOKEN=mi_token_super_secreto
Fichero .env.example (sube a GitHub)
# Copia este fichero como .env y rellena los valores
OPENAI_API_KEY=
DATABASE_URL=
DEBUG=true
APP_ENV=development
SECRET_TOKEN=
Crítico: Añade
.env a tu .gitignore antes de hacer el primer commit. Si subes claves de API a GitHub por error, cámbialas inmediatamente — GitHub escanea los repos públicos en busca de claves filtradas.2. Cargar el .env con python-dotenv
import os
from dotenv import load_dotenv
from pathlib import Path
# Carga el fichero .env automáticamente
load_dotenv()
# Acceder a las variables
api_key = os.getenv("OPENAI_API_KEY")
db_url = os.getenv("DATABASE_URL")
debug_mode = os.getenv("DEBUG", "false").lower() == "true"
# Con valor por defecto si no existe
app_env = os.getenv("APP_ENV", "production")
3. Configurar el .gitignore
El fichero .gitignore le dice a Git qué ficheros debe ignorar permanentemente:
# .gitignore — añade estas líneas mínimas en cualquier proyecto Python
# Secretos (CRÍTICO)
.env
.env.local
.env.production
# Python
__pycache__/
*.pyc
.pytest_cache/
*.egg-info/
# Entornos virtuales
venv/
.venv/
.uv/
# IDEs
.vscode/settings.json
.idea/
# Sistema operativo
.DS_Store # macOS
Thumbs.db # Windows
4. Múltiples Entornos (dev / staging / prod)
from dotenv import load_dotenv
import os
# Cargar el .env correcto según el entorno
env = os.getenv("APP_ENV", "development")
load_dotenv(f".env.{env}") # Carga .env.development, .env.staging, etc.
# O simplemente cargar .env.local con override
load_dotenv(".env.local", override=True)
¿Listo para convertirte en un Maestro?
Potencia tu carrera con el Máster Completo: Python de la A a la Z. Domina Ciencia de Datos, ML y Deep Learning.