Przejdź do treści głównej
Narzędzia Pythona2026-07-29 · 7 min czytania

uv: Menedżer pakietów Pythona, który zastępuje pip, pip-tools i venv (przewodnik 2026)

Jeśli spędziłeś w tym roku jakiś czas nad projektem w Pythonie, prawdopodobnie widziałeś „uv” pojawiające się w pliku README lub CI. Jest to napisany w Rust menedżer pakietów i narzędzie virtualenv firmy Astral (ten sam zespół, który stoi za ruff) — i jest 10-100 razy szybszy niż klasyczna kombinacja pip / pip-tools / venv.

W tym przewodniku omówiono: co właściwie zastępuje uv, pięć poleceń, które obejmują 95% tego, co robisz codziennie, oraz dwa przypadki, w których powinieneś pozostać przy klasycznych narzędziach.

Co zastępuje UV

| Klasyczne narzędzie | odpowiednik UV | Przyspieszenie |

|---|---|---|

| python -m venv .venv | uv venv | ~5x |

| pip zainstaluj pakiet | uv pip zainstaluj pakiet | ~10-50x |

| pip install -r wymagania.txt | uv pip install -r wymagania.txt | 20-100x na zimnej pamięci podręcznej |

| pip-compile (narzędzia pip) | kompilacja pip uv | ~50x |

| python -m venv + aktywacja źródła dla każdego projektu | uv uruchom <cmd> | Całkowicie pomija aktywację |

Różnica prędkości jest realna. Instalacja umiarkowanego projektu Django (Django + DRF + seler + redis + boto3 + ~40 deps przechodnich) w zimnej pamięci podręcznej zajmuje ~45 sekund w przypadku pip i ~2 sekundy w przypadku uv. W ciepłej pamięci podręcznej UV jest zasadniczo natychmiastowe, ponieważ wykorzystuje globalną pamięć podręczną z twardym łączem zamiast kopiować pliki do każdego Venv.

Pięć poleceń, których będziesz używać

1. Zainstaluj sam 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 jest pojedynczym, samodzielnym plikiem binarnym — bez ładowania początkowego Pythona i żadnych własnych zależności.

2. Utwórz środowisko wirtualne

BASH
cd 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

W przeciwieństwie do python -m venv, uv może pobrać wersję Pythona, o którą prosiłeś. Koniec z trzyetapowym tańcem typu „pyenv zainstaluj, następnie venv, a następnie aktywuj”.

3. Zainstaluj pakiety

BASH
uv 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

Składnia jest celowo identyczna z pip — zamień pip na uv pip i wszystko działa. Koszt migracji: pięć naciśnięć klawiszy.

4. Zamroź/kompiluj wymagania

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 „kompilacji” jest deterministyczny — to samo wejście, to samo wyjście, bajt po bajcie. Idealny do powtarzalnych CI.

5. Uruchom polecenie bez aktywowania venv

BASH
uv 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

To jest zabójcza funkcja. Koniec z „source .venv/bin/activate” przed każdym poleceniem. Świetny w CI, świetny w Makefiles, świetny w skryptach Shell.

Migracja istniejącego projektu (2 minuty)

Zakładając, że masz plik 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__)"

Cztery polecenia gotowe. Twój plik requirements.txt nie musi się zmieniać. Twój plik pyproject.toml nie musi się zmieniać. Twój CI prawie nie musi się zmieniać — zamień krok instalacji i gotowe.

Ścieżka natywna pyproject.toml (projekty uv-first)

W przypadku projektów rozpoczynanych od zera użyj natywnego przepływu pracy uv — bez żadnych wymagań.txt:

BASH
uv 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

Ma ten sam kształt co „cargo” dla Rusta lub „npm” dla Node — jeden plik konfiguracyjny, jeden plik blokady, instalacje deterministyczne. Jeśli zaczynasz od nowa w 2026 r., to jest właściwa ścieżka.

Kiedy nadal używać pip / venv

Dwa przypadki:

1. Starsze systemy CI, w których nie można zainstalować UV. Jeśli utkniesz w agencie Jenkins z 2019 r. bez dostępu do powłoki, trudności związane z instalacją UV mogą przeważyć nad zwiększeniem szybkości. Każdy nowoczesny system CI (GitHub Actions, GitLab CI, CircleCI, BuildKite) posiada jednoliniowy instalator uv.

2. Środowiska z przerwą powietrzną z zablokowanym lustrem `pip`. uv domyślnie korzysta z PyPI, ale obsługuje --index-url — to zwykle działa, ale niektóre korporacyjne serwery lustrzane mają subtelne zachowania (nagłówki uwierzytelniania, JSON API vs Simple API), które uv obsługuje inaczej. Przetestuj zanim zatwierdzisz.

To wszystko. W każdym innym przypadku w 2026 r. — programiści solo, projekty zespołowe, open source, CI, Docker — uv jest szybsze, bardziej niezawodne i wymaga mniej wysiłku umysłowego niż klasyczny stos.

30-sekundowa zamiana CI

Przed (działania 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

Liczba uruchomień CI spada z ~2 min do ~15 sekund na etapie instalacji. Jeśli Twoja matryca testowa działa 5 razy na PR, jest to prawdziwa skumulowana oszczędność.


uv to rzadkie narzędzie, które jest zarówno szybsze ORAZ prostsze niż to, co zastępuje. Jeśli w 2026 roku będziesz zarabiać na życie w Pythonie, poświęć 10 minut na zmianę jednego projektu. Nawyk będzie przenoszony na każdy nowy projekt, którego dotkniesz.

Następny krok: ścieżka Python DevOps obejmuje tematykę UV, Ruff, Docker i nowoczesny stos wdrożeniowy Pythona — 104 interaktywne lekcje.

Gotowy, aby spróbować?

15 lekcji gratis po darmowej rejestracji – bez karty. Wypróbuj platformę i podejmij decyzję.

Zacznij bezpłatnie →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.