uv Python Package Manager β
Straight to The Script β
Script di bawah dijalankan per baris pada sistem dengan spesifikasi sebagai berikut:
- OS: Windows 11
- Python: 3.13.0
- Terminal: Windows Terminal - Git Bash
- uv version: 0.5.2
Install uv dengan salah satu command berikut β
pip install uv
# atau
curl -LsSf https://astral.sh/uv/install.sh | sh
TIP
Jika command pip
, atau uv
tidak ditemukan, coba selalu menggunakan python -m
, misal, python -m pip
. Anda juga bisa setting alias pada .bashrc (Aliases Creation).
Anda juga mungkin perlu menambahkan binary/program ke PATH.
Inisiasi Project dan Setting Dependencies β
# 1. Inisiasi project
uv init
# 2. Inisiasi Virtual Environment (.venv)
uv venv
# 3. Install atau remove package dengan command berikut
uv add
uv remove
# misal:
uv add pandas requests
uv remove pandas
Menambahkan Optional dan Development Dependencies β
# Menambahkan optional-dependencies (windows extra)
uv add --optional windows kaleido==0.1.0.post1
# Menambahkan optional dependencies (dev extra)
uv add --optional dev ruff
INFO
Saya tidak menggunakan uv add --dev
karena saya masih belum tahu bagaimana cara compile ke requirements.txt untuk dependencies group, kalau untuk optional dependencies hanya tinggal menggunakan --extra dev
(penjelasan compile pada section berikutnya).
Sync Dependencies β
# Sync to pyproject.toml or lock
uv sync
uv sync --extra dev --extra windows
Migrasi dari pip or requirements.txt β
Di bawah ini merupakan cara install requirements.txt
dengan uv. Namun saya lebih suka melakuka uv add
atas package-package utama sehingga file pyproject.toml
terbentuk dengan baik sesuai dengan package utama.
# sync dependencies ensures that installed packages exactly match to the requirements:
uv pip sync requirements.txt
# or just install everything in requirements:
uv pip install -r requirements.txt
# compile main dependencies:
uv pip compile pyproject.toml -o requirements.txt
# compile main and optional dependencies (pilih salah satu sesuai kebutuhan):
uv pip compile pyproject.toml -o requirements.txt --all-extras
uv pip compile pyproject.toml -o requirements.txt --extra windows --extra dev
uv pip compile pyproject.toml -o requirements.txt --extra windows
Output dari requirements_devwindows.txt adalah seperti di bawah. Dengan menggunakan uv, kita dapat melihat dependencies-of-dependencies sehingga mengetahui mana saja package utama, dan mana saja package tambahan yang terinstall.
# This file was autogenerated by uv via the following command:
# uv pip compile pyproject.toml -o requirements.txt --extra dev --extra windows
bottleneck==1.3.8
# via pandas
kaleido==0.1.0.post1
llvmlite==0.42.0
# via numba
numba==0.59.1
# via pandas
numexpr==2.10.0
# via pandas
numpy==1.26.4
# via
# bottleneck
# numba
# numexpr
# pandas
packaging==24.0
# via plotly
pandas==2.2.1
plotly==5.20.0
python-dateutil==2.9.0.post0
# via pandas
pytz==2024.1
# via pandas
ruff==0.3.5
six==1.16.0
# via python-dateutil
tenacity==8.2.3
# via plotly
tzdata==2024.1
# via pandas
uv==0.5.2
Menjalankan script dengan uv β
Anda harus menjalankan script dengan perintah uv
agar environment yang digunakan sesuai dengan yang telah kita atur di atas, tidak menggunakan environment python di level user.
uv run main.py
References β
- uv Github Page: https://github.com/astral-sh/uv
- pyproject.toml: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
- Version Specifiers: https://packaging.python.org/en/latest/specifications/version-specifiers/#id5