2 puan yazan GN⁺ 2025-01-29 | 1 yorum | WhatsApp'ta paylaş
  • ~/bin/ dizininde çok sayıda otomasyon betiği oluşturuyorum.
  • uv ve satır içi betik meta verilerini keşfettikten sonra Python'ı daha fazla kullanmaya başladım.
  • ~/bin yol üzerinde olduğu için, betikleri komut satırından doğrudan çalıştırmak istiyorum.
  • Bunun için şu shebang'i kullanıyorum: #!/usr/bin/env -S uv run --script
  • Komut satırı artık uv run --script çalıştırıyor ve dosyayı argüman olarak iletiyor.
  • uv, shebang'i yok sayıyor ve dosyanın geri kalanını normal bir Python dosyası olarak çalıştırıyor.
  • chmod a+x {filename} komutuyla betiğe çalıştırma izni verdikten sonra, Python ile yazılmış basit komut satırı betikleri kullanabiliyorum. Bu betikler bağımlılıkları otomatik olarak yönetiyor.

1 yorum

 
GN⁺ 2025-01-29
Hacker News yorumu
  • env -S seçeneği kullanılarak shebang satırında birden fazla argüman geçirilebiliyor

    • Linux'ta shebang satırının yalnızca tek bir argüman geçirebildiğine dair yaygın kanıyı kırıyor
    • env -S, argümanları ayrı ayrı bölüp çalıştırmak için kullanışlı
  • uv kullanarak Python CLI araçlarını kurma yöntemi iyileştiriliyor

    • curl | sh betiğiyle kolayca kurulabiliyor
    • PyPI'de uv'ye bağımlı küçük bir kurulum paketi oluşturularak CLI aracı kuruluyor
    • Python sanal ortamlarını yönetmeye gerek kalmadan bağımsız bir ortama kurulabiliyor
    • Karmaşık bağımlılık sorunları nedeniyle açılan GitHub issue'ları azalıyor
  • Prolog dosyalarını shell'den çalıştırmanın bir yolu tasarlanıyor

    • Prolog dosyasının aynı zamanda shell dosyası olarak da algılanması sağlanarak çalıştırılabiliyor
    • Shell'de ilk satır yorum olarak işlenerek hata önleniyor
  • Trey Hunner'ın "Lazy self-installing Python scripts with uv" yazısında daha fazla örnek ve ayrıntı sunuluyor

  • mise kullanılarak küçük işler için betikler yazılabiliyor

    • uv ile Python betiklerinin nasıl çalıştırılacağı tanıtılıyor
  • uv run python kullanarak Python ortamlarını yönetmek pratik bulunuyor

    • .venv yönetmeye gerek kalmadan proje ortamında REPL çalıştırılabiliyor
    • Sistem kurulum sorunları çözülüyor ve proje/ortam içinde doğrudan çalıştırılabiliyor
  • uv bir komut çalıştırıcısı olarak kullanılırken dikkat edilmesi gereken bazı noktalar var, ancak çoğu durumda zaman kazandırıyor

    • .py dosyalarını doğrudan çalıştırırken yol sorunlarını çözmek için bir seçenek bulunuyor
  • TypeScript kullanıcıları benzer işleri Deno ile yapabiliyor

    • deno run ile izin bayrakları eklenebiliyor
  • Nix paket yöneticisi kullanılarak farklı diller ve bağımlılıklar yönetilebiliyor

    • Tek dosyalı, taşınabilir betikler yazılabiliyor