İçeriğe geç

Python Paket Yöneticisinde Yeni Dönem: pip Yerine uv Kullanmak

Python projeleri geliştirirken çoğu kişinin ilk tanıştığı araç pip olur. Uzun yıllardır Python ekosisteminin temel taşı olan pip, basit paket yükleme işlemlerini oldukça başarılı bir şekilde yürütür. Ancak modern projelerde performans, hız ve önbellekleme gibi ihtiyaçlar arttıkça yeni nesil çözümler gündeme gelmeye başladı. İşte bu noktada uv, pip’e alternatif olarak öne çıkıyor. Bu yazıda uv nedir, nasıl kurulur, neden kullanmalısınız ve popüler editörlerle nasıl entegre edilir gibi soruları detaylıca cevaplayacağız.

uv Nedir?

uv, Astral tarafından geliştirilen ultra hızlı bir Python paket yöneticisidir. Rust diliyle yazılmıştır ve pip’in yaptığı işlevlerin çoğunu çok daha hızlı bir şekilde gerçekleştirir. Başlıca amacı, pip + virtualenv + pip-tools kombinasyonunun yerine geçerek daha modern ve performanslı bir deneyim sunmaktır.

uv’in pip’ten Ayrıldığı Özellikler

  • Hız: Rust ile yazıldığı için pip’e göre kat kat hızlı çalışır. Büyük projelerde bağımlılık çözümü ve yükleme sürelerini saniyelere düşürür.
  • Cache Yönetimi: Paket önbelleklemesi çok gelişmiştir, aynı paketi tekrar indirmenize gerek kalmaz.
  • Deterministik Kurulum: pip-tools gibi otomatik olarak requirements.txt dosyalarını güncel tutabilir.
  • virtualenv Entegrasyonu: Kendi sanal ortamını oluşturur, ayrıca mevcut virtualenv ortamlarıyla da uyumludur.
  • platform-universal: Windows, Linux ve MacOS’ta sorunsuz çalışır.

Neden uv Kullanmalısınız?

Projenizin ölçeği büyüdükçe paket yönetimi hız ve kararlılık açısından kritik hale gelir. uv kullanmak size şu avantajları sağlar:

  • pip’e göre 10 kata kadar daha hızlı bağımlılık çözümü.
  • Modern geliştirme ortamlarıyla tam uyumluluk.
  • Daha az disk alanı kullanımı.
  • Deterministik ve tekrarlanabilir kurulumlar.
  • Hızlı güncelleme ve önbellek temizleme işlemleri.

uv Nasıl Kurulur?

Kurulum işletim sistemine göre oldukça kolaydır. Aşağıdaki komutları terminalde çalıştırabilirsiniz.

Windows Kurulumu

  1. PowerShell veya CMD açın.
  2. Aşağıdaki komutu çalıştırın: irm https://astral.sh/uv/install.ps1 | iex
  3. PATH ayarınızı kontrol edin. Genelde %USERPROFILE%\.cargo\bin klasörüne yüklenir.

Linux Kurulumu

  1. Terminal açın.
  2. Aşağıdaki komutu çalıştırın: curl -LsSf https://astral.sh/uv/install.sh | sh
  3. ~/.local/bin klasörünü PATH’e ekleyin: export PATH="$HOME/.local/bin:$PATH"
  4. Kurulumu doğrulayın: uv --version

MacOS Kurulumu

  1. Terminal açın.
  2. Benzer şekilde yükleyebilirsiniz: curl -LsSf https://astral.sh/uv/install.sh | sh
  3. Homebrew ile de kurabilirsiniz: brew install astral-sh/uv/uv

uv ile Temel Kullanım Komutları

  • Yeni Sanal Ortam Oluşturma: uv venv .venv
  • Bir Paket Kurma: uv pip install requests
  • Tüm Bağımlılıkları Güncelleme: uv pip install -r requirements.txt --upgrade
  • Önbelleği Temizleme: uv cache clean

PyCharm ile uv Kullanımı

PyCharm’da uv entegrasyonu pip ile aynıdır. Şu adımları izleyebilirsiniz:

  1. Projenizde sanal ortam oluşturun: uv venv .venv
  2. PyCharm’da Settings > Project > Python Interpreter bölümüne gidin.
  3. Add Interpreter > Existing Environment seçin.
  4. .venv/bin/python (Linux/Mac) veya .venv\Scripts\python.exe (Windows) yolunu gösterin.
  5. Artık PyCharm pip yerine uv’in kurduğu ortamı kullanır.

VSCode ile uv Kullanımı

VSCode entegrasyonu da oldukça basittir:

  1. Terminalden sanal ortam oluşturun: uv venv .venv
  2. VSCode sol alt köşedeki Python Interpreter kısmına tıklayın.
  3. Python Interpreter seçin ve projenizdeki .venv yolunu gösterin.
  4. Artık VSCode tüm işlemleri uv ile kurulan ortamda yapar.

uv’in pip Karşısında Öne Çıkan Yönleri

  • Performans: Büyük monorepo projelerde çok hızlı bağımlılık çözümü.
  • Deterministik Çözümler: Her makinede aynı bağımlılıklar yüklenir.
  • Gelişmiş Cache: Tek sefer indirilen paket bir daha çekilmez.
  • Kolay Sürüm Sabitleme: pip-tools entegre gibi requirements.txt üretimi.
  • Rust Temelli: Daha stabil ve düşük sistem kaynağı kullanımı.

Hangi Durumlarda uv Kullanmalısınız?

Aşağıdaki durumlarda uv ciddi fark yaratır:

  • Projede çok sayıda bağımlılık varsa.
  • CI/CD pipeline’larında kurulum süreleri kritikse.
  • Her makinede aynı bağımlılık seti isteniyorsa.
  • Modern cache ve hızlı indirme avantajı isteniyorsa.

pip mi uv mi?

pip hala Python’un resmi ve en yaygın paket yöneticisi olmayı sürdürüyor. Ancak hız, kararlılık ve modern geliştirme deneyimi açısından uv çok güçlü bir alternatif sunuyor. Özellikle orta ve büyük ölçekli projelerde veya CI/CD süreçlerinde kullanmanız ciddi zaman kazandırır. Eğer henüz denemediyseniz, birkaç dakikanızı ayırıp kurmanızı kesinlikle tavsiye ederim.

  • uv ücretsiz mi? Evet, tamamen açık kaynaklı ve ücretsizdir.
  • pip’in yerini tamamen alabilir mi? Çoğu durumda alabilir; ancak bazı özel pip özellikleri (ör. bazı legacy paketlerin kurulumu) için pip’e geri dönmeniz gerekebilir.
  • uv projeyi bozar mı? Hayır, uyumlu bir sanal ortam yaratır ve pip ile kurulan paketleri de kullanabilirsiniz.

uv ile Farklı Python Sürümleri Nasıl Kullanılır?

Python projelerinde çoğu zaman birden fazla sürümü yönetmek gerekebilir. Örneğin bir proje Python 3.8 isterken diğeri 3.11 gerektirebilir. uv bu konuda da oldukça esnek çalışır. Temel mantık, istediğiniz Python yorumlayıcısını sanal ortam oluştururken explicit (açıkça) belirtmenizdir.

Örnek: Farklı Python Yolu Kullanmak

uv venv komutu varsayılan olarak python veya ortamınızda tanımlı yorumlayıcıyı kullanır. Eğer sisteminizde birden fazla Python sürümü varsa, tam yol belirtebilirsiniz.

uv venv --python=/usr/bin/python3.8 .venv-py38

Bu komut, /usr/bin/python3.8 yorumlayıcısını kullanarak .venv-py38 adında bir sanal ortam yaratır.

Windows Örneği

Windows’ta örneğin Python 3.9 kuruluysa şu şekilde belirtirsiniz:

uv venv --python="C:\Python39\python.exe" .venv-py39

MacOS Örneği

uv venv --python="/usr/local/bin/python3.11" .venv-py311

Hangi Python Sürümü Kullanılıyor Nasıl Anlaşılır?

Aktif ortamınızda şu komutu çalıştırarak hangi Python sürümünün bağlı olduğunu görebilirsiniz:

python --version

veya

which python

Böylece uv’in gerçekten istediğiniz yorumlayıcıyı kullandığını doğrulamanız mümkün olur.

Bir Projede Birden Fazla Ortam Yönetmek

  • Her sürüm için ayrı sanal ortam klasörü yaratın. Örneğin:
    • .venv-py38
    • .venv-py311
  • Hangi ortamı kullanmak istiyorsanız terminalde o ortamı aktive edin.
  • PyCharm veya VSCode’da ilgili ortamın python yolunu tanımlayın.

uv ile Python Sürümü Yönetmenin Avantajları

  • Projelerinizi farklı Python sürümleriyle test edebilirsiniz.
  • Legacy uygulamalar için eski sürümlerde geliştirme yapabilirsiniz.
  • Yüksek uyumluluk sağlar; uv pip gibi tek bir sürüme bağlı kalmaz.

Python projelerinizde hızın farkını görmek için hemen deneyin!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir