0Pricing
AI Agents · Lección

Archivos .env y python-dotenv

Cargue archivos .env, configure las reglas de .gitignore y aplique las prácticas recomendadas de dotenv.

Archivos .env y python-dotenv es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

El problema de las exportaciones del shell

Configurar variables de entorno con export en el shell funciona, pero debe volver a configurarlas en cada nueva sesión de terminal. Gestionar muchas variables de esta forma es propenso a errores y no resulta fácil de compartir con el equipo.

Los archivos .env resuelven este problema al almacenar todas las variables del proyecto en un único archivo que se carga automáticamente.

Formato del archivo .env

Un archivo .env contiene pares KEY=VALUE, uno por línea. Las líneas que comienzan por # son comentarios. Los valores pueden escribirse entre comillas de forma opcional. Este formato sencillo es compatible con docenas de herramientas y frameworks.

# .env file (NEVER commit this file to git)

# Required API keys
OPENAI_API_KEY=sk-proj-your-real-key-here
SEARCH_API_KEY=tvly-your-tavily-key-here

# Optional settings with defaults
AGENT_MODEL=gpt-4o-mini
AGENT_MAX_STEPS=20
LOG_LEVEL=DEBUG

# Database (optional — disables memory storage if not set)
# DATABASE_URL=postgresql://user:pass@localhost/agentdb

# Environment identifier
ENV=development

Carga de .env con python-dotenv

Instale python-dotenv con pip install python-dotenv. Llame a load_dotenv() al principio de su punto de entrada, antes de leer cualquier valor de os.environ. Esto carga el archivo .env y rellena el entorno.

# pip install python-dotenv
from dotenv import load_dotenv
import os

# Load .env file — call this BEFORE reading any env vars
load_dotenv()

# Now all variables from .env are available via os.environ
openai_key = os.environ['OPENAI_API_KEY']
model = os.getenv('AGENT_MODEL', 'gpt-4o-mini')
max_steps = int(os.getenv('AGENT_MAX_STEPS', '20'))

print(f'Model: {model}, Max steps: {max_steps}')

Opciones de load_dotenv()

load_dotenv() ofrece varias opciones útiles: dotenv_path= para especificar una ruta personalizada, override=True para sobrescribir las variables de entorno existentes (de forma predeterminada, se omiten) y verbose=True para registrar qué archivo se ha cargado.

from dotenv import load_dotenv
import os

# Load from a specific path
load_dotenv(dotenv_path='/path/to/custom/.env')

# Override existing environment variables
# (by default, existing vars are NOT overridden)
load_dotenv(override=True)

# Load a specific environment file
env_file = os.getenv('ENV_FILE', '.env')
load_dotenv(dotenv_path=env_file, verbose=True)

# Find .env automatically (searches up the directory tree)
from dotenv import find_dotenv
load_dotenv(find_dotenv())

dotenv_values() para diccionarios de configuración explícitos

dotenv_values() devuelve el contenido del archivo .env como un diccionario de Python sin modificar el entorno. Esto resulta útil cuando desea inspeccionar o utilizar la configuración sin contaminar el entorno del proceso.

from dotenv import dotenv_values

# Read .env into a dict without touching os.environ
config = dotenv_values('.env')

print(config.get('AGENT_MODEL'))   # 'gpt-4o-mini'
print(config.get('LOG_LEVEL'))     # 'DEBUG'

# Merge .env with actual environment (env vars take priority)
import os
combined = {**dotenv_values('.env'), **os.environ}

# This means actual environment variables override .env values
# Useful for CI where env vars are injected by the pipeline

El archivo .env.example

Cree un archivo .env.example que documente todas las variables obligatorias con valores de ejemplo. Este archivo SÍ se incluye en git: sirve como documentación para los compañeros de equipo y los nuevos desarrolladores sobre lo que deben configurar.

# .env.example — commit this file to git
# Copy to .env and fill in real values:
# cp .env.example .env

# Required API keys (get from respective providers)
OPENAI_API_KEY=sk-proj-your-openai-key-here
SEARCH_API_KEY=tvly-your-tavily-key-here

# Optional settings
AGENT_MODEL=gpt-4o-mini
AGENT_MAX_STEPS=20
LOG_LEVEL=INFO
ENV=development

# Database (optional)
# DATABASE_URL=postgresql://user:password@localhost:5432/agentdb

Añadir .env a .gitignore

El archivo .env NUNCA debe incluirse en git. Añádalo a .gitignore inmediatamente después de crear el proyecto. Verifique que se ignora antes de realizar la primera confirmación.

# .gitignore — add these lines

# Environment files with real secrets
.env
.env.local
.env.production
.env.staging

# But DO commit these:
# .env.example  (placeholder values, safe to share)

# Verify .env is ignored before committing:
# git check-ignore -v .env
# .gitignore:1:.env   .env    <-- means it IS ignored (good)

# If .env was already tracked:
# git rm --cached .env
# git commit -m 'Remove .env from tracking'
# echo '.env' >> .gitignore

Hook de pre-commit para bloquear confirmaciones de .env

Añada un hook de pre-commit que bloquee cualquier confirmación que contenga un archivo .env. Esto proporciona una red de seguridad automática por si alguien olvida comprobar .gitignore.

# .git/hooks/pre-commit (make executable: chmod +x .git/hooks/pre-commit)

#!/bin/sh
# Block commits that include .env files with real content
if git diff --cached --name-only | grep -qE '^\.env$';
then
  echo 'ERROR: .env file is staged for commit!'
  echo 'This file contains secrets and must NOT be committed.'
  echo 'Run: git reset HEAD .env'
  exit 1
fi

# Also check for common secret patterns in any staged file
if git diff --cached | grep -qE '(sk-proj-|tvly-|xai-)';
then
  echo 'WARNING: Possible API key detected in staged changes!'
  echo 'Review carefully before committing.'
fi

exit 0

Carga de .env en distintos frameworks

Muchos frameworks cargan automáticamente los archivos .env. FastAPI (mediante pydantic-settings), Django (mediante django-environ) y Docker Compose admiten .env de forma nativa. Conocer estos patrones evita cargarlo varias veces.

# FastAPI with pydantic-settings (auto-loads .env):
# pip install pydantic-settings
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    openai_api_key: str
    agent_model: str = 'gpt-4o-mini'
    log_level: str = 'INFO'

    class Config:
        env_file = '.env'

# settings = Settings()  # auto-reads .env and validates types
# print(settings.agent_model)  # 'gpt-4o-mini'

# FastAPI is also fine with plain load_dotenv() at the top of main.py
# No need to use pydantic-settings for simple agents

Varios archivos .env para distintos entornos

Use archivos .env independientes para los distintos entornos: .env.development, .env.staging, .env.production. Cargue el correcto según la variable ENV.

import os
from dotenv import load_dotenv

# Determine which environment to load
env = os.getenv('ENV', 'development')

# Try environment-specific file first, fall back to base .env
env_file = f'.env.{env}'
if os.path.exists(env_file):
    load_dotenv(env_file)
    print(f'Loaded {env_file}')
else:
    load_dotenv('.env')
    print('Loaded .env')

# Usage:
# ENV=staging python agent.py     -> loads .env.staging
# ENV=production python agent.py  -> loads .env.production
# python agent.py                 -> loads .env (default development)

Lista de comprobación completa de la configuración

Lista de comprobación completa para configurar .env en un proyecto de agente nuevo:

  1. Cree .env con las claves reales (no lo confirme nunca)
  2. Cree .env.example con valores de ejemplo (confirme este archivo)
  3. Añada .env a .gitignore
  4. Añada load_dotenv() al principio de su punto de entrada
  5. Valide las variables obligatorias al iniciar
  6. Añada cp .env.example .env a las instrucciones de configuración de su README

Comprobación de conocimientos: archivos .env y python-dotenv

Compruebe sus conocimientos sobre los archivos .env y la biblioteca python-dotenv.

Repaso: archivos .env y python-dotenv

Ahora dispone de un flujo de trabajo completo con .env para proyectos de agentes:

  • Cree un archivo .env con valores reales; no lo confirme nunca
  • Cree .env.example con valores de ejemplo; confírmelo siempre
  • Añada .env* (excepto .env.example) a .gitignore
  • Llame a load_dotenv() al principio de su punto de entrada
  • Use dotenv_values() para acceder a un diccionario sin modificar os.environ
  • Use archivos independientes para cada entorno (.env.staging, .env.production)

Este flujo de trabajo mantiene los secretos fuera de git y facilita el desarrollo local.

Preguntas frecuentes

¿La lección «Archivos .env y python-dotenv» es gratis?

Sí — el texto completo de «Archivos .env y python-dotenv» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Archivos .env y python-dotenv»?

Cargue archivos .env, configure las reglas de .gitignore y aplique las prácticas recomendadas de dotenv. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Archivos .env y python-dotenv»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Variables de entorno para agentes
  2. Archivos .env y python-dotenv
  3. Rotación y seguridad de secretos
  4. Perfiles de configuración para desarrollo y producción
← Volver a AI Agents