Ana içeriğe geç

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.

curl -LsSf https://astral.sh/uv/install.sh | sh

Yeni Sanal Ortam Oluşturma

uv venv

Ş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

uv pip install PAKETISMI

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.

uv pip install -r requirements.txt

Python Versiyonlarını Görme / Yükleme

uv python list

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.

uv python install SURUM

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

uv init

İç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.