Yeni Nesil Python Paket Yöneticisi: uv
Bir Python projesinin olmazsa olmazı paket yöneticisidir. Bunun en bilineni pip olmakla birlikte paket yöneticileri sadece bununla sınırlı değil. pipx, poetry gibi projeler de farklı ihtiyaçları karşılamak için ortaya çıkmışlar. Ancak bunların arasında bir tanesi var ki çok hızlı çalışıyor ve kullanması oldukça zevkli: uv.
Uv'nin her özelliğini kullandığımı söyleyemem. Daha çok pip ve venv özelliklerini kullanıyorum ve
bunları tanıtmak istedim. Paket yüklemek ve güncellemek gerçekten hızlı ve tek yapmanız gereken pip
komutlarının önüne uv eklemeniz.
Uv Yükleme¶
Kullandığınız işletim sistemine bağlı olarak yükleme yöntemi değişiklik gösterecektir. MacOS kullanıyorsanız homebrew ile brew install uv komutu ile yükleyebilirsiniz. Linux altında iseniz aşağıdaki komut ile yükleyebilirsiniz.
Yeni Sanal Ortam Oluşturma¶
Şu anki Python ile .venv dizininde bir sanal ortam oluşturacaktır. Devamında
source .venv/bin/activate ile bunu etkinleştirebilirsiniz. Benim gibi
fish kullanıyorsanız bunun yerine source .venv/bin/activate.fish komutunu kullanmanız gerekmekte. Uv hangi kabuğu kullandığınızı anlayarak gerekli komutu yazmakta.
Eğer spesifik bir Python sürümü ile sanal ortam oluşturmak istiyorsanız -p parametresini
kullanmanız yeterli. uv venv -p PYTHON-SURUMU komutu ile bunu başarabilirsiniz.
Paket Yükleme¶
pip ile geriye uyumlu şekilde çalışıyor, en güzel özelliği de bu. Herhangi bir pip komutunun
önüne uv ekleyerek istediğimiz sonucu elde edebiliyoruz. Örneğin requirements.txt dosyasından paketleri yüklemek istediğimizde aşağıdaki komutu çalıştırmamız yeterli.
Python Versiyonlarını Görme / Yükleme¶
Komutu ile hangi Python versiyonlarının yüklenmiş ve kullanılabilir olduğunu görebiliyoruz. Eğer sistemimizde olmayan bir sürümü yüklemek istersek aşağıdaki komutu kullanmamız yeterli olacaktır.
Sonrasında venv oluştururken hangi python sürümünü kullanacağımızı belirtmemiz yeterli. Yukarıda
bahsettiğim gibi uv venv -p SURUM komutu ile bunu başarabiliyoruz.
Yeni Proje Başlatma¶
İçinde bulunduğunuz dizin içerisinde pyproject.toml ve minimal bir dizin yapısını oluşturur.
pypyroject.toml yönetimi için uv add ve uv remove komutlarını kullanabiliyoruz. Bu komutlar
projeye paket ekliyor veya çıkarıyor.
Sonuç¶
Etrafta birçok venv ve paket yöneticisi var ancak uv aralarında en hızlı çalışanı. Uv kullanmaya başladığımdan beri paket yüklemek ve çıkarmak çok daha hızlı olmaya başladı ve kullanması oldukça keyifli.
Tabii ki kullanmadığım birçok özelliği var. Bu özelliklere uv belgelerinden ulaşabilirsiniz.