Ulaşım
- Adres: 2342 Sk, İpekyol, İpek Ap 49A, 63250 Haliliye/Şanlıurfa
- Telefon:
0505 532 36 38 - eMail: admin@alestaweb.com
Python ile çalışıyorsanız, paketlerin kurulurken neden bu kadar uzun süre beklettiğini en az bir kez merak etmişsinizdir. İşte tam da burada uv (uv Python package manager) devreye giriyor. Astral tarafından Rust ile yazılan uv; pip, pip-tools, virtualenv ve Poetry'nin yaptığı her şeyi tek bir araçta toplayan, üstelik 10-100 kat daha hızlı (10-100x faster) bir paket ve proje yöneticisi. Alesta Web ekibi olarak son aylarda iç Python projelerimizin tamamını uv'ye taşıdık ve sonuç gerçekten fark ediliyor. Bu rehberde uv'nin ne olduğunu, nasıl kurulduğunu ve alestaweb.com'da paylaştığımız diğer geliştirici araçlarıyla birlikte projelerinize nasıl entegre edeceğinizi adım adım anlattık.
uv, Python dünyasının dağınık araç setini tek çatı altında toplayan modern bir paket yöneticisidir (Python package manager). Aynı ekibin daha önce çıkardığı Ruff linter'ı ile aynı felsefeyi taşır: Rust ile yaz, çok hızlı olsun, kullanımı basit kalsın. Yani uv'yi kurduğunuzda; sanal ortam oluşturma (virtual environment), bağımlılık çözme (dependency resolution), paket kurma (package installation), kilitleme dosyası üretme (lock file) ve hatta Python'un kendisini indirme gibi işlerin hepsini tek komutla yapabiliyorsunuz.
Yazının hazırlandığı tarihte uv'nin en güncel sürümü 0.11.17 (28 Mayıs 2026) idi. Proje aktif olarak geliştiriliyor ve üretim ortamlarında yaygın şekilde kullanılıyor. Alesta Web olarak deneyimimize göre uv'yi bu kadar değerli kılan şey hız değil sadece; tek bir aracın pip + venv + pip-tools + pipx + Poetry kombinasyonunun yerini alması, ekipteki herkesin aynı komutları kullanması demek.
uv, pip ile uyumlu bir arayüze sahiptir. Yani uv pip install komutu, alıştığınız pip install gibi çalışır ama Rust hızında. Bu sayede mevcut projelerinize neredeyse hiç değişiklik yapmadan geçebilirsiniz (drop-in replacement).
Peki neden mevcut araçları bırakıp uv'ye geçelim? Basit bir cevabı var: hız ve sadelik. Büyük bağımlılık ağaçlarında pip'in dakikalarca sürebildiği kurulumlar, uv ile saniyelere iniyor. Bunun iki temel sebebi var. Birincisi, uv Rust ile yazıldığı için bağımlılık çözümü (dependency resolution) çok daha verimli. İkincisi, global bir önbellek (global cache) tutarak aynı paketi disk üzerinde tekrar tekrar saklamıyor; bu hem disk alanından tasarruf sağlıyor hem de tekrar kurulumları neredeyse anlık hale getiriyor.
| Özellik / Feature | pip + venv | Poetry | uv |
|---|---|---|---|
| Hız (speed) | Yavaş | Orta | 10-100x hızlı |
| Lock file | Hayır (pip-tools gerek) | Var | uv.lock |
| Python kurma | Hayır | Hayır | Evet |
| Workspace | Hayır | Kısmen | Cargo tarzı |
Tabloyu kafanızda şöyle canlandırın: pip işini görür ama yavaştır ve eksik parçaları (lock, Python sürümü) başka araçlarla tamamlamanız gerekir. Poetry bunları toparlar ama yine de yavaş kalır. uv ise tek başına hepsini, üstelik en hızlı şekilde halleder. Alesta Web uzmanları olarak özellikle CI/CD süreçlerinde bu hız farkının dakikalarca zaman kazandırdığını gözlemledik.
uv'yi kurmak tek satırlık bir iş. Sisteminize göre aşağıdaki komutlardan birini çalıştırmanız yeterli. Dikkat edin: uv kendi başına bağımsız bir ikili (standalone binary) olarak gelir, yani önceden bir Python kurulu olmasına bile gerek yok.
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
pip install uv # veya pipx install uv
Kurulumdan sonra sürümü doğrulayın:
uv --version # uv 0.11.17 # uv'yi kendi içinden güncelleme: uv self update
Sürüm numarasını gördüyseniz uv hazır demektir. Artık projelerinizi yönetmeye başlayabilirsiniz.
Şimdi gelelim asıl konuya: gerçek bir projede uv nasıl kullanılır? Yeni bir proje başlatalım. uv, modern Python standardı olan pyproject.toml dosyasını otomatik oluşturur.
uv init alesta-demo cd alesta-demo # Olusan yapi: # alesta-demo/ # pyproject.toml # .python-version # README.md # main.py
Bağımlılık eklemek için uv add kullanılır. İlk uv add komutunu çalıştırdığınızda uv, sanal ortamı (.venv) otomatik oluşturur ve paketi kurar. Ayrıca uv.lock dosyasını günceller; böylece ekipteki herkes tam olarak aynı sürümleri kurar (reproducible builds).
uv add requests uv add "fastapi>=0.115" # Sadece gelistirme bagimliligini ekle: uv add --dev pytest ruff # Paket cikarma: uv remove requests
# Projeyi sanal ortam icinde calistir: uv run main.py # pyproject.toml + uv.lock'a gore ortami eslestir: uv sync
Burada güzel olan şey, ayrı ayrı "sanal ortamı aktive et", "paketleri kur", "doğru Python'u seç" adımlarıyla uğraşmamanız. uv run bunların hepsini arka planda hallediyor. Gördünüz mü? Çok basitmiş aslında.
uv'nin en sevdiğimiz özelliklerinden biri, Python'un kendisini de yönetebilmesi. Yani makinenizde hiç Python olmasa bile uv ile istediğiniz sürümü indirip projelere atayabilirsiniz. Bu, daha önce pyenv gibi ayrı bir araç gerektiren bir işti.
# Belirli bir Python surumunu indir: uv python install 3.13 # Kurulu surumleri listele: uv python list # Projeye Python surumu sabitle: uv python pin 3.13
Tek dosyalık scriptler için bile uv harika çalışır. Script başına bağımlılık tanımlayıp uv run script.py diyebilirsiniz; uv geçici, izole bir ortam kurup scripti çalıştırır. Böylece sistem Python'unuzu kirletmemiş olursunuz (no global pollution).
Alesta Web olarak ekipleri uv'ye geçirirken en çok karşılaştığımız soruları ve çözümlerini derledik.
Sebep: uv PATH'e eklenmemis. Cozum: Kurulumdan sonra terminali yeniden baslatin veya ~/.bashrc / ~/.zshrc dosyasini 'source' edin. export PATH="$HOME/.local/bin:$PATH"
# Mevcut requirements.txt ile uyumlu kurulum: uv pip install -r requirements.txt # Daha modern yaklasim: pyproject.toml'a tasi uv add -r requirements.txt
Kimlik dogrulamali ozel PyPI deposu kullaniyorsaniz UV_INDEX ortam degiskenini ve token'i dogru verin. uv 0.11 surumu bu durumda daha acik hata mesaji gosterir.
Eğer Python paket yöneticileri konusu ilginizi çekiyorsa, JavaScript tarafındaki benzer karşılaştırmayı pnpm vs npm vs Yarn rehberimizde ele almıştık. Astral ekosisteminin diğer aracı için ise Python ty type checker yazımıza göz atabilirsiniz.
Deneyimlerimize göre uv'den en iyi verimi almak için birkaç pratik öneri:
uv pip compile kullanın.uv'yi Docker içinde kullanırken resmi ghcr.io/astral-sh/uv imajından uv ikilisini kopyalamak, en temiz yöntemlerden biridir. Alesta Web ekibi olarak konteyner tabanlı dağıtımlarımızda bu yaklaşımı tercih ediyoruz.
Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan derlenmiş ve Alesta Web tarafından test edilmiştir (verified and tested):
uv, Python paket yönetiminde yıllardır beklenen sadeleşmeyi getiriyor. Tek bir araç; sanal ortam, bağımlılık, lock dosyası ve Python sürümünü yönetiyor — hem de pip'e göre 10-100 kat hızlı. Alesta Web olarak yeni başlayan her Python projesinde uv kullanmanızı öneriyoruz.
Hızlı Özet / Quick Summary:
Faydalı Bağlantılar / Useful Links:
Sorularınız mı var? Alesta Web ekibi olarak yorumlardan size yardımcı olmaktan memnuniyet duyarız.
© 2026 Alesta Web - Tüm hakları saklıdır.