0Pricing
AI Agents · Leçon

Fichiers .env et python-dotenv

Chargez les fichiers .env, configurez les règles de .gitignore et appliquez les bonnes pratiques de dotenv.

Fichiers .env et python-dotenv est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Le problème des variables exportées par le shell

La définition de variables d’environnement avec export dans le shell fonctionne, mais vous devez les redéfinir à chaque nouvelle session de terminal. La gestion de nombreuses variables de cette manière est source d’erreurs et difficile à partager avec votre équipe.

Les fichiers .env résolvent ce problème en stockant toutes les variables du projet dans un fichier chargé automatiquement.

Le format du fichier .env

Un fichier .env contient des paires KEY=VALUE, une par ligne. Les lignes commençant par # sont des commentaires. Les valeurs peuvent éventuellement être placées entre guillemets. Ce format simple est compris par des dizaines d’outils et de cadres logiciels.

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

Charger .env avec python-dotenv

Installez python-dotenv avec pip install python-dotenv. Appelez load_dotenv() tout en haut de votre point d’entrée, avant toute lecture de os.environ. Cette fonction charge le fichier .env et alimente l’environnement.

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

Options de load_dotenv()

load_dotenv() possède plusieurs options utiles : dotenv_path= pour spécifier un chemin personnalisé, override=True pour écraser les variables d’environnement existantes (par défaut, elles sont ignorées) et verbose=True pour consigner le fichier chargé.

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() pour des dictionnaires de configuration explicites

dotenv_values() renvoie le contenu du fichier .env sous forme de dictionnaire Python sans modifier l’environnement. Cette fonction est utile lorsque vous souhaitez inspecter ou utiliser la configuration sans polluer l’environnement du processus.

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

Le fichier .env.example

Créez un fichier .env.example qui documente toutes les variables obligatoires avec des valeurs fictives. Ce fichier IS versionné dans git — il sert de documentation pour vos coéquipiers et les nouveaux développeurs afin d’indiquer ce qu’il faut configurer.

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

Ajouter .env à .gitignore

Le fichier .env doit NEVER être validé dans git. Ajoutez-le immédiatement à .gitignore lorsque vous créez votre projet. Vérifiez qu’il est bien ignoré avant votre première validation.

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

Mécanisme de prévalidation pour bloquer les validations de .env

Ajoutez un mécanisme de prévalidation qui bloque toute validation contenant un fichier .env. Cela fournit un filet de sécurité automatique au cas où quelqu’un oublierait de vérifier .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

Charger .env dans différents cadres logiciels

De nombreux cadres logiciels chargent automatiquement les fichiers .env. FastAPI (via pydantic-settings), Django (via django-environ) et Docker Compose prennent tous en charge .env nativement. La connaissance de ces pratiques évite un chargement en double.

# 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

Plusieurs fichiers .env pour différents environnements

Utilisez des fichiers .env distincts pour les différents environnements : .env.development, .env.staging, .env.production. Chargez le fichier approprié en fonction de la variable 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)

Liste complète de vérification de la configuration

Liste complète de vérification de la configuration d’un nouveau projet d’agent avec .env :

  1. Créez .env avec les vraies clés (ne le validez jamais)
  2. Créez .env.example avec des valeurs fictives (validez ce fichier)
  3. Ajoutez .env à .gitignore
  4. Ajoutez load_dotenv() en haut de votre point d’entrée
  5. Validez les variables obligatoires au démarrage
  6. Ajoutez cp .env.example .env aux instructions de configuration de votre README

Vérification des connaissances : fichiers .env et python-dotenv

Testez votre compréhension des fichiers .env et de la bibliothèque python-dotenv.

Récapitulatif : fichiers .env et python-dotenv

Vous disposez désormais d’un processus .env complet pour les projets d’agent :

  • Créez un fichier .env avec les valeurs réelles — ne le validez jamais
  • Créez .env.example avec des valeurs fictives — validez-le toujours
  • Ajoutez .env* (sauf .env.example) à .gitignore
  • Appelez load_dotenv() tout en haut de votre point d’entrée
  • Utilisez dotenv_values() pour accéder au dictionnaire sans toucher à os.environ
  • Utilisez des fichiers distincts pour chaque environnement (.env.staging, .env.production)

Ce processus garde les secrets hors de git tout en facilitant le développement local.

Questions Fréquemment Posées

La leçon « Fichiers .env et python-dotenv » est-elle gratuite ?

Oui — le texte complet de « Fichiers .env et python-dotenv » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fichiers .env et python-dotenv » ?

Chargez les fichiers .env, configurez les règles de .gitignore et appliquez les bonnes pratiques de dotenv. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Fichiers .env et python-dotenv » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Variables d’environnement pour les agents
  2. Fichiers .env et python-dotenv
  3. Rotation et sécurité des secrets
  4. Profils de configuration pour le développement et la production
← Retour à AI Agents