UV ile Python geliştirme iş akışını dönüştürmek
(youtube.com)"uv: Making Python Local Workflows FAST and BORING in 2025" video özeti
Bu video, Python paketleme aracı uv kullanarak yerel geliştirme iş akışlarını hızlı ve verimli hale getirmenin ikinci bölümünü ele alıyor. Ana noktalar şöyle:
1. uv temel komutlarını kullanma
uv run:pyproject.tomliçinde tanımlanmış veuv.lockdosyasına sabitlenmiş bağımlılıkları kullanarak sanal ortam içindepytestveyafastapigibi komutları çalıştırır.uv add: Yeni bir bağımlılığıpyproject.tomldosyasına ekler veuv.lockdosyasını otomatik olarak günceller.uv run --with: Projenin çekirdek bağımlılıklarına eklemedenpdbppgibi geliştirme yardımcı modüllerini geçici olarak ekleyip kullanmanızı sağlar.uv lock --upgrade: Bağımlılık kilit dosyasını çok yüksek hızda günceller.uv run, çalıştırma sırasında değişen kilit dosyasını otomatik olarak algılar ve ortamı senkronize eder.
2. just ile iş akışını standartlaştırma
uv,hatchveyapdmgibi kullanıcı tanımlı komutlar tanımlama özelliğini yerleşik olarak sunmaz.- Videoda
Makefile'ın dezavantajlarına (platform bağımlılığı, standart dışı sözdizimi vb.) dikkat çekiliyor ve alternatif olarak Rust ile yazılmış komut çalıştırıcısıjustgüçlü biçimde öneriliyor. justfilekullanarak aşağıdaki gibi tekrar eden işler recipe olarak standartlaştırılabilir.test: Testleri çalıştırma (argüman aktarımı mümkün)cov: Test kapsamını kontrol etmeserve: Geliştirme sunucusunu çalıştırmacheckall: Lint, tip kontrolü vb. tüm kontrolleri tek seferde çalıştırma
3. just ve uv entegrasyonu
.envdosyası:just,.envdosyasını okuyarak ortam değişkenlerini ayarlayabilir. Bu sayedeuv runiçine--withparametresini dinamik olarak eklemek veya sunucu portunu değiştirmek gibi esnek iş akışları kurulabilir.uvx(uv tool run):pipxbenzeri şekilde, projeden bağımsız olarak PyPI paketlerini çalıştıran bir komuttur.justrecipe'leri içindehttpiegibi araçlar, proje bağımlılıklarına eklenmeden kullanılabilir.
4. Sanal ortamı doğrudan yönetme (isteğe bağlı iş akışı)
uv runüzerinden gitmeden, geleneksel yöntemle sanal ortamı (.venv) etkinleştirip kullanmak isteyen geliştiriciler için bir yöntemdir.uv sync:uv.lockdosyası ile.venvklasörünün durumunu senkronize eder. (bağımlılıkları kurar ve gereksiz paketleri kaldırır)direnv: Belirli bir dizine girildiğinde.envrcbetiğini otomatik olarak çalıştıran bir shell aracıdır. Bu araç sayesinde dizine girerken otomatik olarakuv syncçalıştırılabilir ve sanal ortam etkinleştirilebilir.
Sonuç
uv'nin hızı ile just ve direnv gibi araçlar birleştirildiğinde, bağımlılık yönetimi ve komut çalıştırma süreçleri otomatikleştirilip standartlaştırılabilir; böylece geliştiriciler temel iş mantığına daha fazla odaklanabilir. Sonuçta "hızlı ve sıkıcı (boring)", yani son derece kararlı ve öngörülebilir bir geliştirme ortamı kurulabilir.
4 yorum
https://github.com/gracefullight/py-starter kullanmak için bir şablon hazırladım.
poethepoetile görevleripyproject.tomliçinde tanımlayıp kullanmak mümkün olduğu için benjustyerine bunu kullanıyorum.Teşekkürler.
Teşekkürler. https://poethepoet.natn.io/