uv: Správca balíkov Python, ktorý nahrádza pip, pip-tools a venv (Sprievodca 2026)
Ak ste tento rok strávili nejaký čas v projekte Python, pravdepodobne ste videli, ako sa v súbore README alebo CI objavilo uv. Je to správca balíkov napísaný Rustom a nástroj virtualenv od spoločnosti Astral (rovnaký tím za ruff) — a je 10-100x rýchlejší ako klasická kombinácia pip / pip-tools / venv.
Táto príručka obsahuje: čo vlastne uv nahrádza, päť príkazov, ktoré pokrývajú 95 % toho, čo robíte denne, a dva prípady, kedy by ste sa mali držať klasických nástrojov.
Čo nahrádza UV
| Klasický nástroj | UV ekvivalent | Zrýchlenie |
|---|---|---|
| python -m venv .venv | uv venv | ~5x |
| pip install pkg | uv pip install pkg | ~10-50x |
| pip install -r requirements.txt | uv pip install -r requirements.txt | 20-100x na studenej vyrovnávacej pamäti |
| "pip-compile" (pip-tools) | uv pip kompilovať | ~50x |
| python -m venv + aktivácia zdroja pre každý projekt | uv run <cmd> | Úplne preskočí aktiváciu |
Rozdiel v rýchlosti je skutočný. Inštalácia mierneho projektu Django (Django + DRF + zeler + redis + boto3 + ~40 tranzitívnych deps) na studenú vyrovnávaciu pamäť trvá ~45 sekúnd s pip a ~2 sekundy s uv. Na teplej vyrovnávacej pamäti je uv v podstate okamžitý, pretože používa globálnu pevne prepojenú vyrovnávaciu pamäť namiesto kopírovania súborov do každého venv.
Päť príkazov, ktoré skutočne použijete
1. Nainštalujte samotný UV
BASH# macOS + Linux — one line, no sudo, no Python needed curl -LsSf https://astral.sh/uv/install.sh | sh # Windows PowerShell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Or via brew / apt / your package manager (updated frequently) brew install uv
uv je samostatný samostatný binárny súbor – žiadny bootstrap Pythonu, žiadne vlastné závislosti.
2. Vytvorte virtuálne prostredie
BASHcd my-project uv venv # creates .venv/ using the current Python uv venv --python 3.13 # or pin a version — uv will download it if missing
Na rozdiel od python -m venv môže uv načítať verziu Pythonu, o ktorú ste požiadali. Už žiadne „pyenv install then venv then activate“ trojkrokový tanec.
3. Nainštalujte balíčky
BASHuv pip install fastapi httpx # into the current venv uv pip install -r requirements.txt # bulk install uv pip install -e . # editable install of current project
Syntax je zámerne identická s pip — zameňte pip za uv pip a všetko funguje. Náklady na migráciu: päť stlačení klávesov.
4. Požiadavky na zmrazenie / kompiláciu
BASH# From an installed venv → requirements.txt (like `pip freeze`) uv pip freeze > requirements.txt # From a loose requirements.in → fully pinned requirements.txt (like pip-compile) uv pip compile requirements.in -o requirements.txt
Krok „kompilácie“ je deterministický – rovnaký vstup, rovnaký výstup, bajt za bajtom. Ideálne pre reprodukovateľné CI.
5. Spustite príkaz bez aktivácie venv
BASHuv run pytest # runs pytest from the current venv uv run python manage.py migrate # any command, any script uv run --with ipython python # temporarily add ipython for this session
Toto je vražedná funkcia. Už žiadne source .venv/bin/activate pred každým príkazom. Skvelé v CI, skvelé v Makefiles, skvelé v skriptoch shellu.
Migrácia existujúceho projektu (2 minúty)
Za predpokladu, že máte súbor requirements.txt:
BASH# 1. Nuke the old venv rm -rf .venv # 2. Create the uv venv uv venv # 3. Install uv pip install -r requirements.txt # 4. Verify uv run python -c "import fastapi; print(fastapi.__version__)"
Štyri príkazy, hotovo. Váš súbor requirements.txt sa nemusí meniť. Váš pyproject.toml sa nemusí meniť. Váš CI sa sotva potrebuje zmeniť – vymeňte krok inštalácie a máte hotovo.
Natívna cesta pyproject.toml (uv-first projekty)
Pre projekty, ktoré začínajú od nuly, použite natívny pracovný postup uv – žiadny súbor requirements.txt:
BASHuv init my-project # generates pyproject.toml + .python-version + .gitignore cd my-project uv add fastapi # adds fastapi to pyproject.toml [dependencies] AND installs uv add --dev pytest # adds to dev-dependencies uv sync # installs exactly what pyproject.toml says (uses uv.lock) uv lock --upgrade # bumps every dependency to its latest compatible version
Toto je rovnaký tvar ako cargo pre Rust alebo npm pre Node – jeden konfiguračný súbor, jeden súbor zámku, deterministické inštalácie. Ak začínate odznova v roku 2026, toto je cesta.
Kedy stále používať pip / venv
Dva prípady:
1. Staršie systémy CI, ktoré nedokážu nainštalovať UV. Ak ste uviazli s agentom Jenkins z roku 2019 bez prístupu k shellu, trenie inštalácie UV môže prevážiť zvýšenie rýchlosti. Každý moderný CI systém (GitHub Actions, GitLab CI, CircleCI, BuildKite) má jednoriadkový UV inštalátor.
2. Prostredia so vzduchovou medzerou s uzamknutým zrkadlom `pip`. uv je predvolene nastavené na PyPI, ale podporuje --index-url – zvyčajne to funguje, ale niektoré firemné zrkadlá majú jemné správanie (hlavičky auth, JSON API vs Simple API), ktoré uv zvláda inak. Otestujte sa predtým, ako sa zaviažete.
To je všetko. Pre každý ďalší prípad v roku 2026 – sólo vývoj, tímové projekty, open source, CI, Docker – je uv rýchlejší, spoľahlivejší a vyžaduje menšiu mentálnu réžiu ako klasický zásobník.
30-sekundová výmena CI
Predtým (akcie GitHub):
YAML- uses: actions/setup-python@v5 with: python-version: '3.13' - run: pip install -r requirements.txt - run: pytest
po:
YAML- uses: astral-sh/setup-uv@v3 - run: uv sync - run: uv run pytest
Spustenie CI klesne z ~2 minút na ~15 sekúnd v kroku inštalácie. Ak sa vaša testovacia matica spustí 5x za PR, ide o skutočnú kumulatívnu úsporu.
uv je vzácny nástroj, ktorý je obaja rýchlejší A jednoduchší ako to, čo nahrádza. Ak v roku 2026 napíšete Python na živobytie, strávte 10 minút prepnutím jedného projektu. Zvyk sa prenesie do každého nového projektu, ktorého sa dotknete.
Ďalší krok: Python DevOps track zahŕňa uv, ruff, Docker a moderný balík nasadenia Pythonu – 104 interaktívnych lekcií.