Skip to content

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 ​

bash
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 ​

bash
# 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 ​

bash
# 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 ​

bash
# 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.

bash
# 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.

txt
# 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.

bash
uv run main.py

References ​

Kevin Daffa Arrahman | Built with VitePress