Python: Masih Pake Python PIP? Ganti Pake UV Sekarang! - ID

Python PIP memainkan peran kunci dalam ekosistem pengembangan Python dengan menyediakan akses mudah dan cepat ke ribuan paket dan library…

Python: Masih Pake Python PIP? Ganti Pake UV Sekarang! - ID
Photo by Chris Ried on Unsplash

Python PIP memainkan peran kunci dalam ekosistem pengembangan Python dengan menyediakan akses mudah dan cepat ke ribuan paket dan library yang tersedia secara luas. Dengan menggunakan PIP, pengembang dapat dengan mudah menginstal, mengupdate, dan menghapus paket Python serta mengelola dependensi proyek mereka.

Meskipun PIP telah menjadi standar de facto dalam manajemen paket Python, beberapa tantangan tetap ada. Salah satunya adalah kinerja yang lambat, terutama saat mengunduh dan menginstal paket-paket yang besar.

Inilah mengapa UV, pengganti PIP yang lebih cepat dan canggih, muncul sebagai solusi yang menarik bagi para pengembang Python. Dengan fokus pada peningkatan kinerja dan manajemen dependensi yang lebih baik, UV menawarkan berbagai fitur yang dirancang untuk mempercepat alur kerja pengembangan Python.

UV dikembangkan oleh tim di astral.sh, yang juga bertanggung jawab atas pengembangan tool Ruff. Rust, sebagai dasar pengembangan UV, menjadi pilihan yang tepat karena bahasa pemrograman tersebut menawarkan kinerja yang tinggi, keamanan yang kuat, dan kemudahan dalam manajemen memori. Dengan menggunakan Rust, tim pengembang UV dapat memastikan bahwa UV tidak hanya cepat dan andal, tetapi juga aman dari kerentanan dan bug yang mungkin terjadi dalam pengembangan perangkat lunak.

Salah satu keunggulan utama UV adalah kecepatan instalasi yang luar biasa. Berkat mekanisme caching yang canggih dan algoritma yang dioptimalkan, UV mampu mengurangi waktu yang diperlukan untuk mengunduh dan menginstal paket Python secara signifikan. Hal ini memungkinkan pengembang untuk fokus pada pengembangan kode mereka tanpa harus menunggu lama untuk proses instalasi selesai.


Instalasi UV

UV dapat diinstall pada platform Mac, Windows, dan Linux

Berikut adalah perintah untuk melakukan instalasi UV

# On macOS and Linux. 
curl -LsSf https://astral.sh/uv/install.sh | sh 
 
# On Windows. 
powershell -c "irm https://astral.sh/uv/install.ps1 | iex" 
 
# With pip. 
pip install uv 
 
# With pipx. 
pipx install uv 
 
# With Homebrew. 
brew install uv 
 
# With Pacman. 
pacman -S uv

Membuat Virtual Environment

uv venv  # Create a virtual environment at .venv.

Aktivasi Virtual Environment

# On macOS and Linux. 
source .venv/bin/activate 
 
# On Windows. 
.venv\Scripts\activate

Perintah-Perintah Dasar UV

uv pip install flask                # Install Flask. 
uv pip install -r requirements.txt  # Install from a requirements.txt file. 
uv pip install -e .                 # Install the current project in editable mode. 
uv pip install "package @ ."        # Install the current project from disk 
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra. 
 
# Generate Package Lock 
 
uv pip compile pyproject.toml -o requirements.txt   # Read a pyproject.toml file. 
uv pip compile requirements.in -o requirements.txt  # Read a requirements.in file. 
 
# Sync a set of locked dependencies with the virtual environment: 
 
uv pip sync requirements.txt  # Install from a requirements.txt file.

Benchmark UV vs PIP

Dalam pengujian ini, akan dibandingkan kinerja UV dengan PIP dalam instalasi Django yang belum ter-cache dan sudah ter-cache. Dengan melakukan benchmark ini, dapat dievaluasi secara langsung kecepatan dan efisiensi kedua manajer paket ini dalam situasi yang berbeda.

Instalasi Django yang Belum Ter-cache: Pertama, akan diuji instalasi Django yang belum ter-cache. Dalam skenario ini, kedua manajer paket akan dijalankan untuk menginstal Django dari awal tanpa adanya cache yang tersedia sebelumnya. Pengujian ini akan memberikan gambaran tentang kinerja masing-masing manajer paket dalam mengunduh dan menginstal paket-paket yang diperlukan dari awal.

Hasil Uji:

Hasil Install Menggunakan PIP
Hasil Install Menggunakan UV

UV membutuhkan waktu yang lebih cepat dibandingkan dengan PIP pada skenario package belum ter-cache.

Instalasi Django yang Sudah Ter-cache: Selanjutnya, akan diuji instalasi Django yang sudah ter-cache. Dalam skenario ini, akan menggunakan cache yang telah disimpan sebelumnya untuk mempercepat proses instalasi. Pengujian ini akan menunjukkan seberapa efektif kedua manajer paket dalam memanfaatkan cache untuk mempercepat proses instalasi.

Hasil Uji:

Hasil Install Menggunakan PIP
Hasil Install menggunakan UV

Pada skenerio paket yang sudah ter-cache, UV dapat melakukan install di bawah 100ms, dibandingkan dengan pip yang membutuhkan waktu sekitar 1 detik lebih.

Kesimpulan

Dapat disimpulkan bahwa UV menawarkan kinerja yang lebih baik dalam instalasi paket Python, terutama ketika menggunakan cache. Penggunaan UV dapat membantu mempercepat alur kerja pengembangan Python dan mengoptimalkan pengelolaan dependensi proyek-proyek Python.