Mengelola dependency di Python seringkali terasa lambat, terutama saat working directory sudah besar dan requirements.txt mulai berantakan. Tim Astral, yang sebelumnya membuat Ruff, meluncurkan uv: package manager yang ditulis dalam Rust dan diklaim 10-100x lebih cepat dari pip. Artikel ini akan membahas cara instalasi, setup project, serta workflow harian menggunakan uv.
uv bukan sekadar package installer. Ia menggantikan beberapa tools sekaligus: pip, pip-tools, pipx, poetry, pyenv, virtualenv, dan twine. Dengan single binary, kamu bisa install Python version, buat virtual environment, resolve dependency, hingga publish package ke PyPI. Keunggulan utamanya adalah universal lockfile yang memastikan environment konsisten di semua platform.
Sistem operasi Linux, macOS, atau Windows
Terminal atau command prompt
Koneksi internet
Untuk Linux dan macOS, jalankan perintah berikut di terminal:
curl -LsSf https://astral.sh/uv/install.sh | shSetelah instalasi selesai, restart terminal dan verifikasi dengan:
uv --versionJika output menampilkan versi, uv sudah siap digunakan.
Buat direktori baru dan inisialisasi project Python:
mkdir myproject && cd myproject
uv initPerintah uv init akan menghasilkan file pyproject.toml dan direktori .venv secara otomatis. Kamu tidak perlu lagi menjalankan python -m venv secara manual.
Tambahkan library yang dibutuhkan menggunakan perintah uv add:
uv add requests numpy pandasuv akan otomatis mengupdate pyproject.toml, meng-resolve versi kompatibel, dan membuat file uv.lock. File lock ini berfungsi seperti package-lock.json di Node.js, memastikan setiap anggota tim mendapatkan dependency yang identik.
Tidak perlu mengaktifkan virtual environment secara manual. Cukup gunakan uv run:
uv run python main.pyuv akan otomatis mendeteksi Python interpreter dari .venv dan menjalankan script di dalamnya. Untuk menjalankan tool CLI seperti pytest atau black, gunakan:
uv run pytest tests/
uv run black src/Ketika berkolaborasi dengan tim, rekanmu hanya perlu menjalankan:
uv syncPerintah ini akan membaca uv.lock dan menginstall dependency dengan versi yang persis sama. Tidak ada lagi masalah "works on my machine" karena perbedaan versi library.
Jika kamu memiliki project lama dengan requirements.txt, uv bisa mengimport dependency secara otomatis:
uv pip install -r requirements.txtUntuk project Poetry, uv mendukung konversi dari poetry.lock meskipun beberapa edge case mungkin memerlukan penyesuaian manual. Dokumentasi resmi Astral menyediakan migration guide lengkap.
uv mengubah cara developer Python mengelola dependency dengan pendekatan yang unified dan sangat cepat. Dari instalasi, inisialisasi project, penambahan library, hingga sinkronisasi tim, semua bisa dilakukan dengan satu tool. Bagi developer Indonesia yang ingin meningkatkan produktivitas, beralih ke uv adalah investasi waktu yang sangat worth it.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu