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.txtdosyaları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
PowerShellveyaCMDaçın.- Aşağıdaki komutu çalıştırın:
irm https://astral.sh/uv/install.ps1 | iex - PATH ayarınızı kontrol edin. Genelde
%USERPROFILE%\.cargo\binklasörüne yüklenir.
Linux Kurulumu
- Terminal açın.
- Aşağıdaki komutu çalıştırın:
curl -LsSf https://astral.sh/uv/install.sh | sh ~/.local/binklasörünü PATH’e ekleyin:export PATH="$HOME/.local/bin:$PATH"- Kurulumu doğrulayın:
uv --version
MacOS Kurulumu
- Terminal açın.
- Benzer şekilde yükleyebilirsiniz:
curl -LsSf https://astral.sh/uv/install.sh | sh - 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:
- Projenizde sanal ortam oluşturun:
uv venv .venv - PyCharm’da Settings > Project > Python Interpreter bölümüne gidin.
- Add Interpreter > Existing Environment seçin.
.venv/bin/python(Linux/Mac) veya.venv\Scripts\python.exe(Windows) yolunu gösterin.- Artık PyCharm pip yerine uv’in kurduğu ortamı kullanır.
VSCode ile uv Kullanımı
VSCode entegrasyonu da oldukça basittir:
- Terminalden sanal ortam oluşturun:
uv venv .venv - VSCode sol alt köşedeki Python Interpreter kısmına tıklayın.
- Python Interpreter seçin ve projenizdeki .venv yolunu gösterin.
- 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
pythonyolunu 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!
