โ† Semua pembelajaran / Python untuk AI Engineer
Fase 0 ยท Setup Toolchain

Dokumentasi uv

uv adalah satu tool yang menggantikan pip, virtualenv, pyenv, pip-tools, dan pipx sekaligus. Halaman ini merangkum peta besarnya.

Intisari

  • uv menggabungkan lima tool lama jadi satu: package manager, virtual environment, version manager, lockfile, dan runner.
  • Ditulis dengan Rust โ€” 10โ€“100x lebih cepat dari pip, dan itu terasa setiap hari.
  • Kamu tidak pernah perlu source .venv/bin/activate lagi. uv run yang mengurus.
  • Cukup hafal 6 perintah: init, add, remove, run, sync, python install.
  • Bagian dokumentasi yang wajib: Getting started lalu Guides โ†’ Working on projects. Sisanya untuk nanti.

Kenapa uv ada

Selama belasan tahun, Python tidak punya satu tool resmi untuk mengelola proyek. Yang ada adalah tumpukan tool yang masing-masing menyelesaikan satu potongan masalah, dan kamu harus menyatukannya sendiri:

Tool lamaMengurusSekarang
pipInstall packageuv
venv / virtualenvLingkungan terisolasi
pyenvVersi interpreter Python
pip-tools / poetryKunci versi dependency (lockfile)
pipxJalankan tool CLI tanpa install permanen

uv mengambil kelima peran itu. Itulah alasan roadmap ini menyuruh kamu melewati semua tutorial yang masih mengajarkan python -m venv + pip install -r requirements.txt. Bukan karena cara lama itu salah, tapi karena kamu akan membuang waktu belajar tiga tool untuk satu hasil.

Model mentalnya: proyek, bukan environment

Ini pergeseran cara berpikir yang penting. Dengan pip, unit kerjanya adalah environment โ€” kamu mengaktifkan sebuah venv, lalu perintah pip dan python menempel ke venv aktif itu. Kalau lupa mengaktifkan, package-nya masuk ke Python sistem.

Dengan uv, unit kerjanya adalah direktori proyek. Selama ada pyproject.toml di folder itu, uv tahu venv mana yang dipakai dan membuatnya otomatis kalau belum ada. Tidak ada state tersembunyi berupa "shell mana yang lagi aktif".

# Cara lama โ€” tiga langkah, satu di antaranya gampang lupa
python -m venv .venv
source .venv/bin/activate      # โ† lupa ini = package nyasar
pip install httpx

# Cara uv โ€” satu langkah, tanpa state
uv add httpx

Anatomi sebuah proyek uv

proyek-pertama/
โ”œโ”€โ”€ pyproject.toml     # deklarasi: nama proyek, versi Python, daftar dependency
โ”œโ”€โ”€ uv.lock            # hasil resolusi: versi persis tiap package + hash-nya
โ”œโ”€โ”€ .venv/             # dibuat & dikelola uv, jangan di-commit
โ”œโ”€โ”€ .python-version    # versi interpreter untuk proyek ini
โ””โ”€โ”€ main.py

Dua file yang penting kamu bedakan:

Jangan pakai requirements.txt lagi untuk proyek baru. File itu mencampur dua peran di atas jadi satu, dan tidak menyimpan hash. Kalau kamu menerima proyek lama yang pakai requirements.txt, uv bisa membacanya: uv add -r requirements.txt.

Alur kerja harian

uv init proyek-baru        # bikin pyproject.toml + struktur dasar
cd proyek-baru

uv add anthropic httpx     # tambah dependency (venv dibuat otomatis kalau perlu)
uv add --dev pytest ruff   # dependency yang cuma dipakai saat ngoding
uv remove httpx            # hapus

uv run main.py             # jalankan script
uv run pytest              # jalankan tool dari dependency proyek
uvx ruff check             # jalankan tool SEKALI TANPA menambahkannya ke proyek

uv sync                    # samakan .venv dengan uv.lock (dipakai di CI & setelah git pull)
uv lock --upgrade          # naikkan versi dalam batas yang diizinkan pyproject.toml

uv run vs uvx

Dua perintah ini sering tertukar. Bedanya sederhana:

uv runuvx
Ambil tool dariDependency proyekmuInternet, ke cache sementara
Masuk ke pyproject.toml?Ya (harus di-add dulu)Tidak
Cocok untukpytest, script aplikasimuruff, mypy, tool sekali pakai

Mengelola versi Python

uv juga memasang interpreter Python-nya sendiri โ€” kamu tidak perlu menyentuh Python bawaan sistem operasi (yang di Linux sering dipakai OS dan berbahaya kalau diutak-atik).

uv python install 3.13     # pasang interpreter
uv python list             # lihat yang tersedia & terpasang
uv python pin 3.13         # kunci versi untuk proyek ini (bikin .python-version)

Peta dokumentasi resmi

Dokumentasi uv luas. Urutan baca yang efisien untuk roadmap ini:

  1. Getting started โ†’ Installation & First steps โ€” 10 menit, wajib.
  2. Guides โ†’ Working on projects โ€” inti dari cara kerja harian. Ini yang paling penting.
  3. Guides โ†’ Using tools โ€” memahami uvx dan tool sekali pakai.
  4. Guides โ†’ Integration โ†’ Docker โ€” nanti saja, saat Fase 6.
  5. Concepts, Reference, Workspaces โ€” lewati. Buka hanya saat butuh.

Kesalahan yang sering terjadi

GejalaPenyebabSolusi
ModuleNotFoundError padahal sudah di-installKamu jalankan python main.py, bukan uv run main.pySelalu pakai uv run
Rekan tim dapat versi package berbedauv.lock tidak di-commitCommit uv.lock, hapus .venv/ dari git
CI lambat / versi tidak konsistenPakai uv sync polosPakai uv sync --frozen di CI โ€” gagal kalau lock tidak sinkron

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.