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