Python'da sanal ortam (venv) ve requirements.txt: proje bağımlılıklarını düzenli tut

“Bende çalışıyordu ama arkadaşımda çalışmadı” sorununun en büyük sebebi karışık paket sürümleridir. Çözüm: her projeye ayrı bir sanal ortam.

Sanal ortam oluştur ve aç

python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux / macOS:
source .venv/bin/activate

Terminalin başında (.venv) görürsün. Artık kurduğun her paket sadece bu projeye girer, sistem Python’ını kirletmez.

Paketleri kur ve kaydet

python -m pip install requests flask
pip freeze > requirements.txt     # kullandığın paketleri sürümleriyle yaz

requirements.txt şöyle görünür:

flask==3.0.3
requests==2.32.3

Başka bilgisayarda aynı ortamı kur

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

Bu kadar. Herkeste birebir aynı sürümler.

İpuçları

  • .venv klasörünü .gitignore’a ekle, depoya gönderme. Sadece requirements.txt paylaşılır.
  • Çıkmak için: deactivate
  • Daha modern bir araç isteyenlere: uv (çok hızlı) veya Poetry. Ama başlangıç için venv + pip fazlasıyla yeterli.

Takıldığınız bağımlılık hatası olursa Soru-Cevap’a yazın.