5 puan yazan GN⁺ 2025-03-31 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Python betiklerinde uv kullanarak bağımlılık kurmadan anında çalıştırılabilen bağımsız betikler oluşturma yöntemi
  • Go projelerinde API testi için Python betikleri kullanılırken ortaya çıkan pratik bir yaklaşım

Mevcut yöntemin sınırları

  • httpx, IPython, loguru gibi paketleri kullanan Python betiklerini çalıştırmak için şu seçeneklerden biri gerekiyordu
    • paketleri doğrudan sistem Python'una kurmak
    • sanal ortam oluşturup paketleri kurduktan sonra çalıştırmak
  • Her iki yöntem de zahmetli, sistem ortamını etkileyebilir ve başkalarıyla paylaşırken uzun açıklamalar gerektirir

uv ile kolay betik çalıştırma

  • uv, bir Python paket yöneticisi ve pip alternatifi olarak, Python betiklerini izole bir çalışma ortamında çalıştırmayı sağlar
  • # /// script yorumu ile bağımlılık bilgisi betiğin içine doğrudan yazılabilir
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Bu ayarı içeren bir betik şu komutla çalıştırılabilir:
    uv run jam_users.py  
    
  • uv, geçici bir sanal ortamı otomatik olarak oluşturur, gerekli paketleri kurar ve ardından betiği tek seferde çalıştırır

Çalıştırılabilir betik haline getirme

  • Normal Python betiklerinde olduğu gibi #!/usr/bin/env python ile çalıştırılabilir hale getirilebilir, ancak bu yöntem uv script yorumunu tanımaz
  • Bunun yerine, aşağıdaki gibi shebang içine doğrudan uv komutu yazılarak sorun çözülebilir
    #!/usr/bin/env -S uv run --script  
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Bu yöntemle chmod +x sonrasında betik doğrudan çalıştırılabilir; diğer Unix sistemlerinde de yalnızca uv kuruluysa aynı şekilde çalışır:
    ./jam_users.py  
    

Avantajlar ve kullanım alanı

  • uv yaklaşımı, betikleri başkalarına iletirken çok kullanışlıdır
  • Karmaşık ön kurulumlar olmadan gerekli paketler ve ortam otomatik olarak hazırlanır
  • Sistem Python'unu veya global ortamı kirletmez
  • Tek bir betikle hem çalıştırma hem de bağımlılık yönetimi çözülür

Yazar, geçmişte Python betiklerini başkalarına iletirken kurulum açıklamalarının karmaşık olduğunu, ancak artık bu sorunu uv ile kolayca çözebildiğini anlatıyor

  • Küçük test betiklerinin yanı sıra gerçek iş otomasyon betiklerinde de etkilidir

Henüz yorum yok.

Henüz yorum yok.