uv - Paket, Proyek, dan Manajer Lingkungan Python Baru

Keunggulan dari Python uv

Konten Halaman

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.

uv python ultra-violet spa

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.

uv vs poetry vs pdm vs pip performance comparison

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

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

  1. 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:
    uv python install
    
    Perintah ini mengunduh dan menginstal versi Python terbaru yang stabil yang tersedia.
  • Instal versi spesifik:
    uv python install 3.12
    
    Ini menginstal versi patch terbaru dari Python 3.12 (misalnya, 3.12.3).
  • Instal versi patch yang tepat:
    uv python install 3.12.3
    
    Ini menginstal tepat Python 3.12.3.
  • Instal beberapa versi:
    uv python install 3.9 3.10 3.11
    
    Ini menginstal Python 3.9, 3.10, dan 3.11.
  • Instal versi yang cocok dengan batasan:
    uv python install '>=3.8,=3.11"
    
    Ini mengubah persyaratan versi Python proyek.

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 lingkungan UV_PYTHON_INSTALL_DIR, tempat ia menyimpan versi Python yang dikelola sendiri.
  • PATH Sistem:
    Di macOS dan Linux, UV memeriksa untuk eksekusi bernama python, python3, atau python3.x (di mana x adalah nomor versi) dalam direktori yang terdaftar dalam PATH sistem. Di Windows, ia mencari python.exe.
  • Lokasi Khusus Windows:
    Di Windows, UV juga memeriksa registri Windows dan interpreter Python dari Microsoft Store menggunakan output dari py --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