uv - Paket, Proyek, dan Manajer Lingkungan Python Baru
Keunggulan dari Python uv
Python uv (dibaca “you-vee”) adalah manajer paket dan proyek Python modern, berkinerja tinggi yang ditulis dalam bahasa Rust. Dirancang sebagai pengganti langsung untuk alat manajemen paket Python tradisional seperti pip
, pip-tools
, virtualenv
, pipx
, dan pyenv
, dengan tujuan menyederhanakan dan mempercepat alur kerja pengembangan Python.
uv dikembangkan oleh Astral, tim di balik linter Python populer Ruff, dan dirancang untuk mengatasi masalah umum dalam ekosistem Python—seperti instalasi yang lambat, konflik dependensi, dan manajemen lingkungan yang kompleks—dengan memanfaatkan kinerja Rust dan arsitektur perangkat lunak modern.
Fitur Utama uv
- Kecepatan yang Luar Biasa: uv jauh lebih cepat dari alat tradisional—biasanya 8–10x lebih cepat dari pip tanpa cache, dan hingga 80–115x lebih cepat dengan cache yang hangat.
- Alat Semua dalam Satu: Menggabungkan instalasi paket, resolusi dependensi, manajemen lingkungan virtual, manajemen versi Python, scaffolding proyek, dan eksekusi skrip dalam satu alat.
- Kompatibilitas: Menyediakan antarmuka perintah baris yang kompatibel dengan pip, membuatnya mudah diadopsi tanpa kurva belajar yang curam.
- Manajemen Dependensi yang Kuat: Menyediakan resolusi dependensi yang presisi dan dukungan file kunci untuk lingkungan yang dapat direproduksi.
- Lingkungan Virtual Otomatis: Membuat dan mengelola lingkungan virtual secara otomatis, mengurangi pengaturan manual.
- Dukungan Multi Platform: Berfungsi di macOS, Linux, dan Windows.
- Instalasi Mandiri: Dapat diinstal tanpa memerlukan Python atau Rust, menggunakan penginstal sederhana atau
curl
.
Masih Tidak Yakin Mengapa Harus Menggunakan uv?
- Kinerja: Secara dramatis mengurangi waktu instalasi paket dan resolusi dependensi.
- Sederhana: Menggabungkan beberapa alat menjadi satu, menyederhanakan pengaturan dan manajemen proyek.
- Ketahanan: Menyediakan lingkungan yang konsisten dan dapat direproduksi dengan pesan kesalahan yang jelas dan penyelesaian konflik.
- Standar Modern: Mendukung
pyproject.toml
untuk konfigurasi proyek, sejalan dengan standar pengemasan Python saat ini.
Contoh Kasus Penggunaan
Mari coba sesuatu yang menarik!
- Memulai Proyek Baru:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Ini membuat direktori proyek, mengatur lingkungan virtual, menginstal dependensi, dan menjalankan skrip dalam lingkungan terisolasi.
- Mengelola Skrip dengan Dependensi Inline:
uv add --script script.py requests
uv run script.py
uv dapat mengelola dependensi untuk skrip satu file tanpa file requirements terpisah.
Perbandingan dengan Alat Tradisional
Fitur | uv | pip/virtualenv | Poetry |
---|---|---|---|
Kecepatan | Sangat cepat | Lambat | Sedang |
Lingkungan Virtual | Otomatis | Manual | Otomatis |
Resolusi Dependensi | Lanjutan | Dasar | Lanjutan |
Manajemen Versi Python | Ya | Tidak (memerlukan pyenv) | Tidak |
Dukungan File Kunci | Ya | Tidak (memerlukan pip-tools) | Ya |
Eksekusi Skrip | Terintegrasi | Tidak | Terbatas |
Bagaimana Cara Menginstal dan Memulai Menggunakan UV di Sistem Anda
Untuk menginstal dan memulai menggunakan uv di sistem Anda, ikuti langkah-langkah sederhana berikut:
Instalasi
- Penginstal Mandiri (Direkomendasikan)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Atau, jika Anda lebih suka menggunakan wget
:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Versi Spesifik: Anda dapat meminta versi spesifik dengan menyertakannya dalam URL, misalnya
https://astral.sh/uv/0.7.15/install.sh
.
- Alternatif: Instalasi via pip (jika Anda sudah menginstal Python)
pip install uv
Catatan: Metode ini kurang disarankan untuk akses sistem-wide kecuali Anda tahu apa yang Anda lakukan, karena mungkin akan mengotori lingkungan Python sistem Anda.
- Instalasi via pipx (untuk instalasi user-wide yang terisolasi)
pipx install uv
Metode ini lebih bersih untuk akses global jika Anda sudah menggunakan pipx
.
Memulai
Untuk Memeriksa Instalasi - Jalankan:
uv
Anda akan melihat menu bantuan yang memastikan uv sudah terinstal dan siap digunakan.
Untuk Membuat dan Mengaktifkan Lingkungan Virtual
- Buat venv:
uv venv test
- Aktifkan di Linux/macOS:
source test/bin/activate
- Aktifkan di Windows:
.\test\Scripts\activate
Sekarang Anda dapat menggunakan uv pip install
untuk menginstal paket dalam lingkungan ini.
Inisialisasi Proyek Baru
uv init
Ini menciptakan pyproject.toml
dan .gitignore
untuk proyek Anda.
Menambahkan Dependensi
Tambahkan paket:
uv add
Ini memperbarui pyproject.toml
dan menghasilkan/memperbarui file kunci.
Sinkronisasi Dependensi
Instal semua dependensi dalam lingkungan Anda:
uv sync
Atau, gunakan antarmuka yang kompatibel dengan pip:
uv pip install
Ini memastikan semua dependensi terinstal sesuai dengan file kunci Anda.
Menjalankan Skrip
Gunakan:
uv run script.py
Ini secara otomatis mengelola lingkungan dan dependensi untuk skrip Anda.
Integrasi Shell (Opsional)
Untuk alur kerja yang lebih mulus, Anda dapat menambahkan integrasi shell ke .zshrc
atau .bashrc
Anda untuk secara otomatis mengaktifkan lingkungan virtual default dan mengalias pip
ke uv pip
.
Dengan langkah-langkah ini, Anda akan memiliki uv terinstal dan siap mengelola proyek Python Anda dengan kecepatan dan kenyamanan.
Menginstal Versi Python Spesifik
Anda dapat menggunakan uv untuk menginstal versi Python spesifik dan mengelolanya untuk proyek Anda.
- Instal versi Python terbaru yang stabil:
Perintah ini mengunduh dan menginstal versi Python terbaru yang stabil yang tersedia.uv python install
- Instal versi spesifik:
Ini menginstal versi patch terbaru dari Python 3.12 (misalnya, 3.12.3).uv python install 3.12
- Instal versi patch yang tepat:
Ini menginstal tepat Python 3.12.3.uv python install 3.12.3
- Instal beberapa versi:
Ini menginstal Python 3.9, 3.10, dan 3.11.uv python install 3.9 3.10 3.11
- Instal versi yang cocok dengan batasan:
Ini mengubah persyaratan versi Python proyek.uv python install '>=3.8,=3.11"
Catatan Tambahan
Unduhan Otomatis: Secara default, uv akan secara otomatis mengunduh dan menginstal versi Python yang diperlukan jika tidak ditemukan di sistem Anda.
Python Sistem: uv dapat menggunakan instalasi Python yang sudah ada jika tersedia, atau Anda dapat memaksa uv untuk menggunakan Python sistem dengan opsi --no-managed-python
.
Pembaruan: Anda dapat memperbarui versi Python yang dikelola oleh uv ke rilis patch terbaru dengan:
uv python upgrade 3.12
Atau memperbarui semua versi yang terinstal:
uv python upgrade
Pembaruan lintas versi minor (misalnya, dari 3.12 ke 3.13) tidak didukung.
Secara ringkas, uv menyediakan alat yang fleksibel dan kuat untuk menginstal, mengelola, dan menggunakan versi Python spesifik dalam proyek Anda.
Bagaimana UV menemukan interpreter Python yang tersedia di berbagai sistem
UV menemukan interpreter Python yang tersedia di berbagai sistem dengan memeriksa sejumlah lokasi yang ditentukan dengan baik dan menanyakan setiap kandidat untuk metadata versinya. Berikut cara kerjanya:
- Instalasi Python yang Dikelola:
UV pertama-tama melihat direktori yang ditentukan oleh variabel lingkunganUV_PYTHON_INSTALL_DIR
, tempat ia menyimpan versi Python yang dikelola sendiri. - PATH Sistem:
Di macOS dan Linux, UV memeriksa untuk eksekusi bernamapython
,python3
, ataupython3.x
(di manax
adalah nomor versi) dalam direktori yang terdaftar dalamPATH
sistem. Di Windows, ia mencaripython.exe
. - Lokasi Khusus Windows:
Di Windows, UV juga memeriksa registri Windows dan interpreter Python dari Microsoft Store menggunakan output daripy --list-paths
. - Lingkungan Virtual:
Jika lingkungan virtual aktif atau ditentukan, UV memeriksa interpreter dalam lingkungan tersebut untuk kompatibilitas sebelum mencari di tempat lain. - Pertanyaan Metadata:
Setiap eksekusi yang ditemukan ditanyai untuk metadata versinya. Hanya eksekusi yang cocok dengan versi yang diminta (atau batasan versi) yang dipertimbangkan. File non-eksekusi diabaikan. - Preferensi dan Fallback:
Secara default, UV memprioritaskan instalasi Python sistem, tetapi Anda dapat menyesuaikan ini dengan opsi untuk memprioritaskan yang dikelola atau hanya menggunakan versi yang dikelola/sistem. Jika tidak ditemukan interpreter yang sesuai, UV dapat mengunduh dan menginstal versi yang diperlukan.
Proses penemuan yang kuat ini memastikan UV dapat andal menemukan dan menggunakan interpreter Python yang benar di berbagai sistem operasi dan lingkungan.
Tautan Berguna
- Halaman utama uv: https://docs.astral.sh/uv/
- Paket uv: https://pypi.org/project/uv/
- GitHub uv: https://github.com/astral-sh/uv/
- Python Cheat Sheet
- Cheat Sheet Conda
- Cheat Sheet venv
- Cheat Sheet Bash
- Cheat Sheet Ollama
- Cheat Sheet venv