AI-agenter · leksjon

.env-filer og python-dotenv

Laste inn .env-filer, regler for .gitignore og anbefalt praksis for dotenv.

Leksjon 2 av 413 trinn

.env-filer og python-dotenv er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Problemet med eksporterte skallvariabler

Det fungerer å angi miljøvariabler med export i skallet, men De må angi dem på nytt i hver nye terminaløkt. Det er feilutsatt å håndtere mange variabler på denne måten, og løsningen kan ikke enkelt deles med teammedlemmer.

.env-filer løser dette ved å lagre alle prosjektvariablene i én fil som lastes inn automatisk.

.env-filformatet

En .env-fil inneholder par av typen KEY=VALUE, ett per linje. Linjer som starter med #, er kommentarer. Verdier kan valgfritt stå i anførselstegn. Dette enkle formatet støttes av flere titalls verktøy og rammeverk.

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

Laste inn .env med python-dotenv

Installer python-dotenv med pip install python-dotenv. Kall load_dotenv() helt øverst i startpunktet, før alle lesinger av os.environ. Da lastes .env-filen inn og miljøet fylles med verdiene.

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

Alternativer for load_dotenv()

load_dotenv() har flere nyttige alternativer: dotenv_path= for å angi en egendefinert sti, override=True for å overskrive eksisterende miljøvariabler (standard er å hoppe over dem), og verbose=True for å logge hvilken fil som ble lastet inn.

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() for eksplisitte konfigurasjonsordbøker

dotenv_values() returnerer innholdet i .env-filen som en Python-ordbok uten å endre miljøet. Dette er nyttig når De vil inspisere eller bruke konfigurasjon uten å forurense prosessmiljø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

.env.example-filen

Opprett en .env.example-fil som dokumenterer alle obligatoriske variabler med plassholderverdier. Denne filen skal committes til git — den fungerer som dokumentasjon for teammedlemmer og nye utviklere om hva som må 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

Legge til .env i .gitignore

.env-filen må ALDRI committes til git. Legg den til i .gitignore umiddelbart når De oppretter prosjektet. Kontroller at den ignoreres før den første commiten.

# .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 for å blokkere .env-commiter

Legg til en pre-commit-hook som blokkerer alle commiter som inneholder en .env-fil. Dette gir et automatisk sikkerhetsnett i tilfelle noen glemmer å 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

Laste inn .env i ulike rammeverk

Mange rammeverk laster inn .env-filer automatisk. FastAPI (via pydantic-settings), Django (via django-environ) og Docker Compose støtter .env direkte. Kjennskap til disse mønstrene unngår dobbel innlasting.

# 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 for ulike miljøer

Bruk separate .env-filer for ulike miljøer: .env.development, .env.staging, .env.production. Last inn riktig fil basert på ENV-variabelen.

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)

Fullstendig sjekkliste for oppsett

En fullstendig sjekkliste for .env-oppsett i et nytt agentprosjekt:

  1. Opprett .env med ekte nøkler (committ den aldri)
  2. Opprett .env.example med plassholdere (committ denne)
  3. Legg .env til i .gitignore
  4. Legg load_dotenv() øverst i startpunktet
  5. Valider obligatoriske variabler ved oppstart
  6. Legg cp .env.example .env til i README-instruksjonene for oppsett

Kunnskapstest: .env-filer og python-dotenv

Test forståelsen av .env-filer og python-dotenv-biblioteket.

Oppsummering: .env-filer og python-dotenv

De har nå en komplett .env-arbeidsflyt for agentprosjekter:

  • Opprett en .env-fil med ekte verdier — committ den aldri
  • Opprett .env.example med plassholdere — committ den alltid
  • Legg .env* (unntatt .env.example) til i .gitignore
  • Kall load_dotenv() helt øverst i startpunktet
  • Bruk dotenv_values() for tilgang som ordbok uten å berøre os.environ
  • Bruk separate filer for hvert miljø (.env.staging, .env.production)

Denne arbeidsflyten holder hemmeligheter ute av git og gjør lokal utvikling enkel.

Gratis å komme i gang

Lær deg AI-agenter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
60
Leksjoner
239

Ofte stilte spørsmål

Er leksjonen «.env-filer og python-dotenv» gratis?

Ja – hele teksten i «.env-filer og python-dotenv» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Hva lærer jeg i «.env-filer og python-dotenv»?

Laste inn .env-filer, regler for .gitignore og anbefalt praksis for dotenv. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AI-agenter?

Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «.env-filer og python-dotenv»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?

Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Miljøvariabler for agenter
  2. .env-filer og python-dotenv
  3. Rotering og sikkerhet for hemmeligheter
  4. Konfigurasjonsprofiler for utvikling og produksjon
← Tilbake til AI-agenter