📋 Özet
Python'da sanal ortam ve paket yönetimi için üç araç öne çıkıyor: virtualenv (hafif, sadece ortam), pipenv (kullanıcı dostu ama yavaş) ve uv (Rust ile yazılmış, 10-100x hızlı). Bu makalede her birini artı/eksileriyle kod örnekleriyle karşılaştırıyoruz.
Giriş
Python projelerinde paket yönetimi ve sanal ortam kurulumu her zaman can sıkıcı olmuştur. Yıllar içinde bu sorunu çözmek için farklı araçlar ortaya çıktı. Bugün üç popüler aracı derinlemesine karşılaştırıyoruz: virtualenv, pipenv ve 2023'te sahneye çıkan uv.
1. virtualenv
virtualenv, Python'un en eski ve en temel sanal ortam aracıdır. Sadece izole bir Python ortamı oluşturur — paket yönetimini pip ile kendin yaparsın.
Kurulum ve Kullanım
# Kur
pip install virtualenv
# Yeni ortam oluştur
virtualenv venv
# Aktifleştir (macOS/Linux)
source venv/bin/activate
# Aktifleştir (Windows)
venv\Scripts\activate
# Paket yükle
pip install django
# Bağımlılıkları kaydet
pip freeze > requirements.txt
# Deaktif et
deactivate
✅ Artıları
- Çok hızlı — ortam oluşturma saniyeler alır
- Basit — öğrenmesi kolay, karmaşık yapısı yok
- Evrensel — her yerde çalışır, CI/CD ile sorunsuz
- Hafif — ekstra bir bağımlılık getirmez
❌ Eksileri
- Lock dosyası yok —
requirements.txttam sürüm kilitleme yapmaz - Manuel yönetim — ortamı kendin aktifleştirip deaktif etmen gerekir
- Sadece ortam — Python versiyonu yönetimi yapmaz
pip freezetüm alt bağımlılıkları da ekler — kirli requirements.txt üretir
2. pipenv
pipenv, pip ve virtualenv'i tek çatı altında birleştiren bir araçtır. Pipfile ve Pipfile.lock dosyaları ile daha güvenli bağımlılık yönetimi sağlar.
Kurulum ve Kullanım
# Kur
pip install pipenv
# Yeni proje başlat ve paket yükle
pipenv install django
# Geliştirme bağımlılığı ekle
pipenv install --dev pytest
# Shell'e gir (ortamı otomatik aktifleştirir)
pipenv shell
# Pipfile.lock ile kesin sürümleri yükle
pipenv sync
# Bağımlılık grafiğini gör
pipenv graph