.env-Dateien und python-dotenv
.env-Dateien laden, .gitignore-Regeln und Best Practices für dotenv.
.env-Dateien und python-dotenv ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Das Problem mit Shell-Exports
Das Setzen von Umgebungsvariablen mit export in der Shell funktioniert, erfordert aber, dass Sie sie in jeder neuen Terminalsitzung erneut setzen. Die Verwaltung vieler Variablen auf diese Weise ist fehleranfällig und lässt sich nicht mit Teammitgliedern teilen.
.env-Dateien lösen dieses Problem, indem sie alle Projektvariablen in einer Datei speichern, die automatisch geladen wird.
Das Format der .env-Datei
Eine .env-Datei enthält KEY=VALUE-Paare, jeweils eines pro Zeile. Zeilen, die mit # beginnen, sind Kommentare. Werte können optional in Anführungszeichen gesetzt werden. Dieses einfache Format wird von Dutzenden Tools und Frameworks verstanden.
# .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.env mit python-dotenv laden
Installieren Sie python-dotenv mit pip install python-dotenv. Rufen Sie load_dotenv() ganz oben in Ihrer Einstiegspunktdatei auf, bevor Sie os.environ auslesen. Dadurch wird die .env-Datei geladen und die Umgebung befüllt.
# 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}')Optionen von load_dotenv()
load_dotenv() bietet mehrere nützliche Optionen: dotenv_path=, um einen benutzerdefinierten Pfad anzugeben, override=True, um vorhandene Umgebungsvariablen zu überschreiben (standardmäßig werden sie übersprungen), und verbose=True, um zu protokollieren, welche Datei geladen wurde.
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() für explizite Konfigurations-Dictionaries
dotenv_values() gibt den Inhalt der .env-Datei als Python-Dictionary zurück, ohne die Umgebung zu verändern. Das ist nützlich, wenn Sie die Konfiguration untersuchen oder verwenden möchten, ohne die Prozessumgebung zu verändern.
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 pipelineDie Datei .env.example
Erstellen Sie eine .env.example-Datei, in der alle erforderlichen Variablen mit Platzhalterwerten dokumentiert sind. Diese Datei wird in Git eingecheckt — sie dient Teammitgliedern und neuen Entwicklern als Dokumentation darüber, was konfiguriert werden muss.
# .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.env zu .gitignore hinzufügen
Die .env-Datei darf NIEMALS in Git eingecheckt werden. Fügen Sie sie sofort beim Erstellen Ihres Projekts zu .gitignore hinzu. Überprüfen Sie vor Ihrem ersten Commit, dass sie ignoriert wird.
# .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' >> .gitignorePre-Commit-Hook zum Blockieren von .env-Commits
Fügen Sie einen Pre-Commit-Hook hinzu, der jeden Commit blockiert, der eine .env-Datei enthält. Das bietet ein automatisches Sicherheitsnetz für den Fall, dass jemand vergisst, die Datei in .gitignore einzutragen.
# .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.env in verschiedenen Frameworks laden
Viele Frameworks laden .env-Dateien automatisch. FastAPI (über pydantic-settings), Django (über django-environ) und Docker Compose unterstützen .env nativ. Wenn Sie diese Muster kennen, vermeiden Sie ein doppeltes Laden.
# 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 agentsMehrere .env-Dateien für Umgebungen
Verwenden Sie separate .env-Dateien für verschiedene Umgebungen: .env.development, .env.staging, .env.production. Laden Sie die richtige Datei abhängig von der ENV-Variable.
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)Vollständige Einrichtung-Checkliste
Eine vollständige Checkliste für die Einrichtung von .env in einem neuen Agentenprojekt:
- Erstellen Sie
.envmit echten Schlüsseln (niemals einchecken) - Erstellen Sie
.env.examplemit Platzhaltern (diese Datei einchecken) - Fügen Sie
.envzu.gitignorehinzu - Fügen Sie
load_dotenv()oben in Ihrer Einstiegspunktdatei hinzu - Validieren Sie die erforderlichen Variablen beim Start
- Fügen Sie
cp .env.example .envzu den Einrichtungshinweisen Ihrer README hinzu
Wissenscheck: .env-Dateien und python-dotenv
Testen Sie Ihr Verständnis von .env-Dateien und der Bibliothek python-dotenv.
Zusammenfassung: .env-Dateien und python-dotenv
Sie verfügen nun über einen vollständigen .env-Workflow für Agentenprojekte:
- Erstellen Sie eine
.env-Datei mit echten Werten — niemals einchecken - Erstellen Sie
.env.examplemit Platzhaltern — immer einchecken - Fügen Sie
.env*(außer .env.example) zu.gitignorehinzu - Rufen Sie
load_dotenv()ganz oben in Ihrer Einstiegspunktdatei auf - Verwenden Sie
dotenv_values()für den Zugriff als Dictionary, ohne os.environ anzutasten - Verwenden Sie separate Dateien pro Umgebung (
.env.staging,.env.production)
Dieser Workflow hält Secrets aus Git heraus und erleichtert gleichzeitig die lokale Entwicklung.
Häufig gestellte Fragen
Ist die Lektion „.env-Dateien und python-dotenv“ kostenlos?
Ja — der vollständige Text von „.env-Dateien und python-dotenv“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „.env-Dateien und python-dotenv“?
.env-Dateien laden, .gitignore-Regeln und Best Practices für dotenv. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „.env-Dateien und python-dotenv“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Umgebungsvariablen für Agenten
- .env-Dateien und python-dotenv
- Rotation und Sicherheit von Secrets
- Konfigurationsprofile für Entwicklung und Produktion