.env Dosyaları ve python-dotenv
.env dosyalarını yükleme, .gitignore kuralları ve dotenv için en iyi uygulamalar.
.env Dosyaları ve python-dotenv, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Kabuk Dışa Aktarımlarının Sorunu
Kabukta export ile ortam değişkenlerini ayarlamak işe yarar; ancak her yeni terminal oturumunda bunları yeniden ayarlamanız gerekir. Çok sayıda değişkeni bu şekilde yönetmek hataya açıktır ve ekip arkadaşlarıyla paylaşım yapılamaz.
.env dosyaları, tüm proje değişkenlerini otomatik olarak yüklenen tek bir dosyada saklayarak bu sorunu çözer.
.env Dosya Biçimi
Bir .env dosyası, her satırda bir tane olacak şekilde KEY=VALUE çiftleri içerir. # ile başlayan satırlar yorumdur. Değerler isteğe bağlı olarak tırnak içine alınabilir. Bu basit biçim, düzinelerce araç ve çerçeve tarafından anlaşılır.
# .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=developmentpython-dotenv ile .env Yükleme
python-dotenv paketini pip install python-dotenv ile yükleyin. Herhangi bir os.environ okumasından önce, giriş noktanızın en üstünde load_dotenv() çağrısını yapın. Bu çağrı .env dosyasını yükler ve ortamı doldurur.
# 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}')load_dotenv() Seçenekleri
load_dotenv() birkaç kullanışlı seçeneğe sahiptir: özel bir yol belirtmek için dotenv_path=, mevcut ortam değişkenlerinin üzerine yazmak için override=True (varsayılan olarak mevcut değişkenler atlanır) ve hangi dosyanın yüklendiğini günlüğe kaydetmek için verbose=True.
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())Açık Yapılandırma Sözlükleri için dotenv_values()
dotenv_values(), ortamı değiştirmeden .env dosyasının içeriğini bir Python sözlüğü olarak döndürür. Bu, işlem ortamını kirletmeden yapılandırmayı incelemek veya kullanmak istediğinizde yararlıdır.
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 Dosyası
Tüm gerekli değişkenleri yer tutucu değerlerle belgeleyen bir .env.example dosyası oluşturun. Bu dosya git'e IS eklenir; ekip arkadaşlarına ve yeni geliştiricilere neleri yapılandırmaları gerektiğini gösteren bir belge görevi görür.
# .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.env Dosyasını .gitignore'a Ekleme
.env dosyası git'e asla kaydedilmemelidir. Projenizi oluşturduğunuzda hemen .gitignore dosyasına ekleyin. İlk kaydınızdan önce yok sayıldığını doğrulayın.
# .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.env Kayıtlarını Engelleyen Ön Kayıt Kancası
.env dosyası içeren tüm kayıtları engelleyen bir ön kayıt kancası ekleyin. Bu, birinin .gitignore dosyasını denetlemeyi unutması durumunda otomatik bir güvenlik ağı sağlar.
# .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 0Farklı Çerçevelerde .env Yükleme
Birçok çerçeve .env dosyalarını otomatik olarak yükler. FastAPI (pydantic-settings aracılığıyla), Django (django-environ aracılığıyla) ve Docker Compose, .env dosyalarını yerleşik olarak destekler. Bu kalıpları bilmek yinelenen yüklemeyi önler.
# 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 agentsOrtamlar için Birden Çok .env Dosyası
Farklı ortamlar için ayrı .env dosyaları kullanın: .env.development, .env.staging, .env.production. Doğru dosyayı ENV değişkenine göre yükleyin.
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)Tam Kurulum Kontrol Listesi
Yeni bir ajan projesi için eksiksiz .env kurulum kontrol listesi:
- Gerçek anahtarlarla
.envoluşturun (asla kaydetmeyin) - Yer tutucularla
.env.exampleoluşturun (bunu kaydedin) .envdosyasını.gitignore'a ekleyin- Giriş noktanızın en üstüne
load_dotenv()ekleyin - Gerekli değişkenleri başlangıçta doğrulayın
cp .env.example .envkomutunu README kurulum yönergelerinize ekleyin
Bilgi Kontrolü: .env Dosyaları ve python-dotenv
.env dosyalarını ve python-dotenv kitaplığını anlayıp anlamadığınızı sınayın.
Özet: .env Dosyaları ve python-dotenv
Ajan projeleri için artık eksiksiz bir .env iş akışınız var:
- Gerçek değerlerle bir
.envdosyası oluşturun; asla kaydetmeyin - Yer tutucularla
.env.exampleoluşturun; bunu her zaman kaydedin - (.env.example hariç)
.env*ifadesini.gitignore'a ekleyin - Giriş noktanızın en üstünde
load_dotenv()çağrısını yapın - os.environ'a dokunmadan sözlük erişimi için
dotenv_values()kullanın - Her ortam için ayrı dosyalar kullanın (
.env.staging,.env.production)
Bu iş akışı, yerel geliştirmeyi kolaylaştırırken gizli bilgileri git dışında tutar.
Sıkça Sorulan Sorular
“.env Dosyaları ve python-dotenv” dersi ücretsiz mi?
Evet — “.env Dosyaları ve python-dotenv” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“.env Dosyaları ve python-dotenv” dersinde ne öğreneceğim?
.env dosyalarını yükleme, .gitignore kuralları ve dotenv için en iyi uygulamalar. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“.env Dosyaları ve python-dotenv” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aracılar İçin Ortam Değişkenleri
- .env Dosyaları ve python-dotenv
- Gizli Bilgileri Yenileme ve Güvenlik
- Geliştirme ve Üretim İçin Yapılandırma Profilleri