0Pricing
AI Agents · Lekcja

Pliki .env i python-dotenv

Wczytywanie plików .env, reguły .gitignore i dobre praktyki dotyczące dotenv.

Pliki .env i python-dotenv to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Problem z eksportami powłoki

Ustawianie zmiennych środowiskowych za pomocą export w powłoce działa, ale wymaga ponownego ustawiania ich w każdej nowej sesji terminala. Zarządzanie wieloma zmiennymi w ten sposób jest podatne na błędy i utrudnia współpracę z zespołem.

Pliki .env rozwiązują ten problem, przechowując wszystkie zmienne projektu w jednym pliku, który jest automatycznie wczytywany.

Format pliku .env

Plik .env zawiera pary KEY=VALUE, po jednej w każdym wierszu. Wiersze rozpoczynające się od # są komentarzami. Wartości można opcjonalnie ująć w cudzysłowy. Ten prosty format jest obsługiwany przez dziesiątki narzędzi i frameworków.

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

Wczytywanie .env za pomocą python-dotenv

Należy zainstalować python-dotenv za pomocą polecenia pip install python-dotenv. Wywołanie load_dotenv() należy umieścić na samym początku punktu wejścia, przed odczytaniem jakichkolwiek wartości z os.environ. Wczytuje ono plik .env i uzupełnia środowisko.

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

Opcje load_dotenv()

load_dotenv() ma kilka przydatnych opcji: dotenv_path= do wskazania własnej ścieżki, override=True do nadpisywania istniejących zmiennych środowiskowych (domyślnie są one pomijane) oraz verbose=True do logowania informacji o wczytanym pliku.

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() do jawnego tworzenia słowników konfiguracji

dotenv_values() zwraca zawartość pliku .env jako słownik języka Python bez modyfikowania środowiska. Jest to przydatne, gdy chcesz sprawdzić konfigurację lub użyć jej bez zanieczyszczania środowiska procesu.

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

Plik .env.example

Należy utworzyć plik .env.example, który dokumentuje wszystkie wymagane zmienne za pomocą wartości zastępczych. Ten plik należy zatwierdzić w git — służy jako dokumentacja dla współpracowników i nowych programistów, pokazująca, co należy skonfigurować.

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

Dodawanie .env do .gitignore

Plik .env NIGDY nie może zostać zatwierdzony w git. Należy dodać go do .gitignore natychmiast po utworzeniu projektu. Przed pierwszym commitem należy sprawdzić, czy plik jest ignorowany.

# .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 pre-commit blokujący commity zawierające .env

Należy dodać hook pre-commit, który blokuje każdy commit zawierający plik .env. Zapewnia to automatyczną ochronę na wypadek, gdy ktoś zapomni sprawdzić plik .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

Wczytywanie .env w różnych frameworkach

Wiele frameworków automatycznie wczytuje pliki .env. FastAPI (za pośrednictwem pydantic-settings), Django (za pośrednictwem django-environ) i Docker Compose natywnie obsługują pliki .env. Znajomość tych mechanizmów pozwala uniknąć wielokrotnego wczytywania.

# 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

Wiele plików .env dla różnych środowisk

Należy używać osobnych plików .env dla różnych środowisk: .env.development, .env.staging, .env.production. Należy wczytywać właściwy plik na podstawie zmiennej 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)

Pełna lista kontrolna konfiguracji

Kompletna lista kontrolna konfiguracji .env dla nowego projektu agenta:

  1. Utwórz .env z rzeczywistymi kluczami (nigdy go nie zatwierdzaj)
  2. Utwórz .env.example z wartościami zastępczymi (ten plik zatwierdź)
  3. Dodaj .env do .gitignore
  4. Dodaj load_dotenv() na początku punktu wejścia
  5. Sprawdzaj wymagane zmienne przy uruchamianiu
  6. Dodaj cp .env.example .env do instrukcji konfiguracji w README

Sprawdzenie wiedzy: pliki .env i python-dotenv

Sprawdź swoją znajomość plików .env i biblioteki python-dotenv.

Podsumowanie: pliki .env i python-dotenv

Masz już kompletny sposób pracy z plikami .env w projektach agentów:

  • Utwórz plik .env z rzeczywistymi wartościami — nigdy go nie zatwierdzaj
  • Utwórz .env.example z wartościami zastępczymi — zawsze go zatwierdzaj
  • Dodaj .env* (z wyjątkiem .env.example) do .gitignore
  • Wywołuj load_dotenv() na samym początku punktu wejścia
  • Używaj dotenv_values() do dostępu w formie słownika bez modyfikowania os.environ
  • Używaj osobnych plików dla każdego środowiska (.env.staging, .env.production)

Ten sposób pracy chroni sekrety przed trafieniem do systemu Git, a jednocześnie ułatwia programowanie lokalne.

Często zadawane pytania

Czy lekcja „Pliki .env i python-dotenv” jest bezpłatna?

Tak — pełny tekst „Pliki .env i python-dotenv” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Pliki .env i python-dotenv”?

Wczytywanie plików .env, reguły .gitignore i dobre praktyki dotyczące dotenv. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Pliki .env i python-dotenv”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Zmienne środowiskowe dla agentów
  2. Pliki .env i python-dotenv
  3. Rotacja sekretów i bezpieczeństwo
  4. Profile konfiguracji dla środowisk deweloperskich i produkcyjnych
← Powrót do AI Agents