AI-agenter · Lektion

.env-filer og python-dotenv

Indlæsning af .env-filer, .gitignore-regler og bedste praksis for dotenv.

Lektion 2 af 413 trin

.env-filer og python-dotenv er en gratis AI-agenter-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i AI-agenter, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AI-agenter-kurset indeholder 4 lektioner i alt.

Problemet med eksportering fra skallen

Det fungerer at angive miljøvariabler med export i skallen, men du skal angive dem igen i hver ny terminalsession. Det er fejlbehæftet og svært at dele med teammedlemmer, når du skal håndtere mange variabler på denne måde.

.env-filer løser dette ved at gemme alle projektets variabler i én fil, som indlæses automatisk.

Formatet for .env-filer

En .env-fil indeholder par af typen KEY=VALUE, ét pr. linje. Linjer, der begynder med #, er kommentarer. Værdier kan valgfrit sættes i anførselstegn. Dette enkle format forstås af snesevis af værktøjer og 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

Indlæsning af .env med python-dotenv

Installér python-dotenv med pip install python-dotenv. Kald load_dotenv() helt øverst i dit indgangspunkt, før du læser nogen os.environ-værdier. Det indlæser .env-filen og udfylder miljøet.

# 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}')

Indstillinger for load_dotenv()

load_dotenv() har flere nyttige indstillinger: dotenv_path= til at angive en brugerdefineret sti, override=True til at overskrive eksisterende miljøvariabler (standardindstillingen er at springe dem over) og verbose=True til at logge, hvilken fil der blev indlæst.

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() til eksplicitte konfigurationsdicts

dotenv_values() returnerer indholdet af .env-filen som en Python-dictionary uden at ændre miljøet. Det er nyttigt, når du vil undersøge eller bruge konfiguration uden at forurene procesmiljøet.

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

Filen .env.example

Opret en .env.example-fil, der dokumenterer alle påkrævede variabler med pladsholderværdier. Denne fil SKAL gemmes i Git — den fungerer som dokumentation for teammedlemmer og nye udviklere om, hvad der skal konfigureres.

# .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

Tilføj .env til .gitignore

.env-filen må ALDRIG gemmes i Git. Tilføj den til .gitignore, så snart du opretter projektet. Kontrollér, at den ignoreres, før du laver din første commit.

# .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

Pre-commit-hook til at blokere commits med .env

Tilføj en pre-commit-hook, der blokerer alle commits, som indeholder en .env-fil. Det giver et automatisk sikkerhedsnet, hvis nogen glemmer at kontrollere .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

Indlæsning af .env i forskellige frameworks

Mange frameworks indlæser .env-filer automatisk. FastAPI (via pydantic-settings), Django (via django-environ) og Docker Compose understøtter alle .env direkte. Hvis du kender disse mønstre, undgår du at indlæse filerne flere gange.

# 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

Flere .env-filer til forskellige miljøer

Brug separate .env-filer til forskellige miljøer: .env.development, .env.staging og .env.production. Indlæs den korrekte fil baseret på variablen 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)

Komplet opsætningskontrolliste

En komplet kontrolliste til opsætning af .env i et nyt agentprojekt:

  1. Opret .env med rigtige nøgler (gem den aldrig)
  2. Opret .env.example med pladsholdere (gem denne i Git)
  3. Tilføj .env til .gitignore
  4. Tilføj load_dotenv() øverst i dit indgangspunkt
  5. Validér påkrævede variabler ved opstart
  6. Tilføj cp .env.example .env til opsætningsinstruktionerne i din README

Videnstest: .env-filer og python-dotenv

Afprøv din forståelse af .env-filer og biblioteket python-dotenv.

Opsummering: .env-filer og python-dotenv

Du har nu en komplet .env-arbejdsgang til agentprojekter:

  • Opret en .env-fil med de rigtige værdier — gem den aldrig
  • Opret .env.example med pladsholdere — gem den altid i Git
  • Tilføj .env* (bortset fra .env.example) til .gitignore
  • Kald load_dotenv() helt øverst i dit indgangspunkt
  • Brug dotenv_values() til adgang til en dictionary uden at berøre os.environ
  • Brug separate filer pr. miljø (.env.staging, .env.production)

Denne arbejdsgang holder hemmeligheder ude af Git og gør samtidig lokal udvikling nem.

Gratis at komme i gang

Lær AI-agenter med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
60
Lektioner
239

Ofte stillede spørgsmål

Er lektionen “.env-filer og python-dotenv” gratis?

Ja — hele teksten til “.env-filer og python-dotenv” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af AI-agenter-kurset, skal du opgradere til CoddyKit PRO. AI-agenter-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “.env-filer og python-dotenv”?

Indlæsning af .env-filer, .gitignore-regler og bedste praksis for dotenv. Du øver dig i AI-agenter med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på AI-agenter?

Der kræves ingen tidligere erfaring. AI-agenter på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “.env-filer og python-dotenv”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne AI-agenter-lektion?

Ja. Alle AI-agenter-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Miljøvariabler til agenter
  2. .env-filer og python-dotenv
  3. Rotation og sikkerhed for secrets
  4. Konfigurationsprofiler til udvikling og produktion
← Tilbage til AI-agenter