uv Nedir? pipenv ve virtualenv ile Farkı Nedir?

uv Nedir? pipenv ve virtualenv ile Farkı Nedir?

📋 Ö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.txt tam sürüm kilitleme yapmaz
  • Manuel yönetim — ortamı kendin aktifleştirip deaktif etmen gerekir
  • Sadece ortam — Python versiyonu yönetimi yapmaz
  • pip freeze tü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

Devamını okumak için giriş yap

Ücretsiz üye ol, tüm makalelere eriş.