29 poin oleh GN⁺ 2025-10-30 | Belum ada komentar. | Bagikan ke WhatsApp
  • uv secara drastis menyederhanakan instalasi Python dan pengelolaan virtual environment, serta menyelesaikan masalah konfigurasi lingkungan yang rumit di ekosistem Python
  • Ditulis dengan Rust, uv menghadirkan kecepatan dan stabilitas, serta menangani instalasi versi Python, manajemen paket, dan resolusi dependensi dalam satu perintah
  • Dengan mengenali pyproject.toml secara otomatis untuk menyiapkan lingkungan proyek, uv sync dapat mereproduksi lingkungan pengembangan yang sepenuhnya identik antaranggota tim
  • Melalui perintah seperti uv run, uv add, dan uvx, pengguna dapat menjalankan tanpa mengaktifkan virtual environment, serta menambahkan paket dan melakukan eksekusi sekali pakai
  • Dengan memastikan konsistensi instalasi dan eksekusi Python, uv dinilai sebagai titik balik yang sangat meningkatkan produktivitas developer dan efisiensi kolaborasi

Gambaran umum uv

  • uv adalah alat manajemen Python open source gratis yang dikembangkan oleh Astral, dengan tujuan menyederhanakan proses konfigurasi lingkungan yang kompleks
    • Astral adalah tim yang membuat alat pengembangan Python seperti Ruff
    • uv mendukung instalasi versi Python, instalasi paket, manajemen virtual environment, dan resolusi dependensi, serta jauh lebih cepat dibanding alat yang sudah ada
  • Dikembangkan dengan Rust, performanya sangat tinggi dan dapat berjalan di hampir semua platform seperti macOS, Linux, dan Windows

Instalasi dan penggunaan dasar

  • Instalasinya sangat sederhana, cukup dijalankan dengan satu baris perintah curl atau PowerShell
  • Karena tidak mengubah instalasi Python yang sudah ada, alat ini aman untuk dicoba

Manajemen lingkungan proyek

  • uv secara otomatis mengelola virtual environment untuk setiap proyek Python dan menyiapkan lingkungan dengan mengenali file pyproject.toml
    • pyproject.toml mendefinisikan versi Python, daftar dependensi, nama dan versi proyek, dan sebagainya
    • Contoh:
      [project]  
      name = "my_project"  
      version = "1.0.0"  
      requires-python = ">=3.9,<3.13"  
      dependencies = ["astropy>=5.0.0", "pandas>=1.0.0,<2.0"]  
      
    • Pendekatan ini memberikan definisi lingkungan yang lebih jelas dan terstandarisasi dibanding pip

Membuat proyek baru

  • Dengan perintah uv init, proyek baru dapat dibuat dengan mudah
    • Secara otomatis membuat file penting seperti pyproject.toml dan README.md
    • Mendukung berbagai bentuk inisialisasi melalui opsi seperti --bare dan --package
    • Detail opsi dapat dilihat dengan uv init --help

Sinkronisasi proyek yang sudah ada

  • Jika proyek memiliki pyproject.toml, proyek bisa langsung digunakan dengan perintah uv sync
    • Secara otomatis menginstal versi Python
    • Membuat virtual environment di direktori .venv
    • Membuat uv.lock yang mencatat informasi versi yang tepat dari semua paket
  • Dengan menggunakan perintah uv run, skrip Python dapat dijalankan tanpa harus mengaktifkan lingkungan terlebih dahulu
    • Contoh: uv run myscript.py, uv run jupyter lab

Manajemen dependensi dan versi Python

  • Dengan perintah uv add numpy>=2.0, dependensi dapat ditambahkan dan dikelola secara otomatis
    • Tidak perlu mengedit pyproject.toml secara manual
  • Dengan perintah uv python pin 3.12.9, versi Python tertentu dapat dikunci, sehingga reproduktibilitas lingkungan terjamin

uvx: eksekusi sekali pakai yang cepat

  • uvx adalah perintah untuk langsung menjalankan alat tanpa konfigurasi lingkungan terpisah
    • Contoh: uvx ruff, uvx jupyter lab, uvx --with pandas,pyarrow ipython
    • Berbasis cache sehingga bisa dijalankan ulang dengan sangat cepat, cocok untuk pekerjaan eksperimental
  • Berkat ini, developer dapat dengan mudah menyiapkan lingkungan eksekusi sementara tanpa terikat pada virtual environment

Jika ini masih belum meyakinkan Anda: catatan pribadi

  • Saat mengembangkan The Astrosky Ecosystem, uv diadopsi untuk menyeragamkan lingkungan Python di berbagai OS
    • Membantu memastikan semua developer dan server menggunakan instalasi Python serta versi dependensi yang sepenuhnya sama
    • uv juga mengelola lingkungan Python di GitHub Actions dan lingkungan server produksi
  • Berkat uv, masalah ketidaksesuaian antara lingkungan instalasi dan pengujian hilang, dan kolaborasi antar-developer menjadi lebih sederhana

Kesimpulan

  • uv secara mendasar mengatasi kompleksitas instalasi dan manajemen Python, serta memungkinkan developer berkolaborasi secara stabil dalam lingkungan yang sama
  • Berkat kecepatannya yang tinggi dan stabilitas berbasis Rust, uv dinilai sebagai “inovasi terbesar yang terjadi di ekosistem Python dalam 10 tahun terakhir”

Belum ada komentar.

Belum ada komentar.