AI-agenter · Lektion

.env-filer och python-dotenv

Läs in .env-filer, konfigurera .gitignore-regler och följ bästa praxis för dotenv.

Lektion 2 av 413 steg

.env-filer och python-dotenv är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Problemet med export i skalet

Det fungerar att ange miljövariabler med export i skalet, men du måste ange dem igen i varje ny terminalsession. Att hantera många variabler på det sättet är felbenäget och svårt att dela med kollegor.

.env-filer löser detta genom att lagra alla projektvariabler i en fil som läses in automatiskt.

Formatet för .env-filer

En .env-fil innehåller par av typen KEY=VALUE, ett per rad. Rader som börjar med # är kommentarer. Värden kan valfritt omges av citattecken. Detta enkla format stöds av dussintals verktyg och ramverk.

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

Läs in .env med python-dotenv

Installera python-dotenv med pip install python-dotenv. Anropa load_dotenv() allra högst upp i startpunkten, innan du läser något från os.environ. Då läses .env-filen in och miljön fylls i.

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

Alternativ för load_dotenv()

load_dotenv() har flera användbara alternativ: dotenv_path= för att ange en anpassad sökväg, override=True för att skriva över befintliga miljövariabler (standardvärdet är att hoppa över dem) och verbose=True för att logga vilken fil som lästes in.

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 explicita konfigurationsdicts

dotenv_values() returnerar innehållet i .env-filen som en Python-dictionary utan att ändra miljön. Det är användbart när du vill inspektera eller använda konfiguration utan att förorena processmiljön.

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

.env.example-filen

Skapa en .env.example-fil som dokumenterar alla obligatoriska variabler med platshållarvärden. Den här filen SKA checkas in i git — den fungerar som dokumentation för kollegor och nya utvecklare om vad som ska konfigureras.

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

Lägga till .env i .gitignore

.env-filen får ALDRIG checkas in i git. Lägg till den i .gitignore direkt när du skapar projektet. Kontrollera att den ignoreras innan din första incheckning.

# .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 som blockerar incheckning av .env

Lägg till en pre-commit-hook som blockerar alla incheckningar som innehåller en .env-fil. Det ger ett automatiskt skydd om någon glömmer att kontrollera .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

Läsa in .env i olika ramverk

Många ramverk läser automatiskt in .env-filer. FastAPI (via pydantic-settings), Django (via django-environ) och Docker Compose har alla inbyggt stöd för .env. Genom att känna till dessa mönster undviker du att läsa in filen flera gånger.

# 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

Flera .env-filer för olika miljöer

Använd separata .env-filer för olika miljöer: .env.development, .env.staging, .env.production. Läs in rätt fil baserat på variabeln 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)

Fullständig konfigurationschecklista

En komplett checklista för .env-konfiguration i ett nytt agentprojekt:

  1. Skapa .env med riktiga nycklar (checka aldrig in filen)
  2. Skapa .env.example med platshållare (checka in den)
  3. Lägg till .env i .gitignore
  4. Lägg till load_dotenv() högst upp i startpunkten
  5. Validera obligatoriska variabler vid uppstart
  6. Lägg till cp .env.example .env i README-instruktionerna för konfiguration

Kunskapskontroll: .env-filer och python-dotenv

Testa dina kunskaper om .env-filer och biblioteket python-dotenv.

Sammanfattning: .env-filer och python-dotenv

Du har nu ett komplett .env-arbetsflöde för agentprojekt:

  • Skapa en .env-fil med riktiga värden — checka aldrig in den
  • Skapa .env.example med platshållare — checka alltid in den
  • Lägg till .env* (utom .env.example) i .gitignore
  • Anropa load_dotenv() allra högst upp i startpunkten
  • Använd dotenv_values() för åtkomst som dictionary utan att röra os.environ
  • Använd separata filer per miljö (.env.staging, .env.production)

Detta arbetsflöde håller hemligheter borta från git och gör lokal utveckling enkel.

Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”.env-filer och python-dotenv” gratis?

Ja – hela texten till ”.env-filer och python-dotenv” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”.env-filer och python-dotenv”?

Läs in .env-filer, konfigurera .gitignore-regler och följ bästa praxis för dotenv. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”.env-filer och python-dotenv”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Miljövariabler för agenter
  2. .env-filer och python-dotenv
  3. Rotation och säkerhet för hemligheter
  4. Konfigurationsprofiler för utveckling och produktion
← Tillbaka till AI-agenter