Към основното съдържание
Инструменти на Python2026-07-29 · 7 мин четене

uv: Мениджърът на пакети на Python, който замества pip, pip-tools и venv (2026 Ръководство)

Ако сте прекарали известно време в проект на Python тази година, вероятно сте виждали uv да се показва в README или CI файл. Това е написан на Rust мениджър на пакети и инструмент за virtualenv от Astral (същият екип зад ruff) — и е 10-100 пъти по-бърз от класическата комбинация pip/pip-tools/venv.

Това ръководство обхваща: какво всъщност замества uv, петте команди, които покриват 95% от това, което правите ежедневно, и двата случая, в които трябва да се придържате към класическите инструменти.

Какво замества uv

| Класически инструмент | uv еквивалент | Ускоряване |

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

| 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 на студен кеш |

| pip-compile (pip-инструменти) | uv pip compile | ~50x |

| python -m venv + source activate за всеки проект | uv стартиране <cmd> | Пропуска изцяло активирането |

Разликата в скоростта е реална. Инсталирането на умерен Django проект (Django + DRF + celery + redis + boto3 + ~40 транзитивни deps) на студен кеш отнема ~45 секунди с pip и ~2 секунди с uv. На топъл кеш uv е по същество мигновен, защото използва глобален твърдо свързан кеш, вместо да копира файлове във всеки venv.

Петте команди, които всъщност ще използвате

1. Инсталирайте самия 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 е единичен самостоятелен двоичен файл — без първоначално зареждане на Python, без собствени зависимости.

2. Създайте виртуална среда

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

За разлика от python -m venv, uv може да извлече версията на Python, която поискахте. Без повече "pyenv инсталирайте след това venv и след това активирайте" танц в три стъпки.

3. Инсталирайте пакети

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

Синтаксисът е умишлено идентичен с pip — разменете pip с uv pip и всичко работи. Цена на миграцията: пет натискания на клавиши.

4. Изисквания за замразяване / компилиране

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

Стъпката на „компилиране“ е детерминистична — същия вход, същия изход, байт за байт. Перфектен за възпроизводим CI.

5. Изпълнете команда без да активирате 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

Това е убийствената функция. Край на source .venv/bin/activate преди всяка команда. Страхотен в CI, страхотен в Makefiles, страхотен в шел скриптове.

Мигриране на съществуващ проект (2 минути)

Ако приемем, че имате 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__)"

Четири команди, изпълнени. Вашият requirements.txt не трябва да се променя. Вашият pyproject.toml не трябва да се променя. Вашият CI почти няма нужда от промяна — разменете стъпката за инсталиране и сте готови.

Родният път на pyproject.toml (uv-първи проекти)

За проекти, започващи от нулата, използвайте собствения работен процес на uv — изобщо няма requirements.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

Това е същата форма като cargo за Rust или npm за Node — един конфигурационен файл, един заключващ файл, детерминирани инсталации. Ако започвате на чисто през 2026 г., това е пътят.

Кога все още да използвате pip / venv

Два случая:

1. Наследени CI системи, които не могат да инсталират uv. Ако сте останали с агент на Jenkins от 2019 г. без достъп до обвивката, триенето от инсталирането на uv може да надхвърли увеличаването на скоростта. Всяка модерна CI система (GitHub Actions, GitLab CI, CircleCI, BuildKite) има едноредов uv инсталатор.

2. Airgapped среди със заключено `pip` огледало. uv по подразбиране е PyPI, но поддържа --index-url — това обикновено работи, но някои корпоративни огледала имат фини поведения (заглавки за удостоверяване, JSON API срещу Simple API), които uv обработва по различен начин. Тествайте преди да се ангажирате.

Това е. За всеки друг случай през 2026 г. — соло разработка, екипни проекти, отворен код, CI, Docker — uv е по-бърз, по-надежден и изисква по-малко умствени разходи от класическия стек.

30-секундната CI размяна

Преди (действия на GitHub):

YAML
- uses: actions/setup-python@v5 with: python-version: '3.13' - run: pip install -r requirements.txt - run: pytest

след:

YAML
- uses: astral-sh/setup-uv@v3 - run: uv sync - run: uv run pytest

CI намалява от ~2 минути до ~15 секунди на стъпката на инсталиране. Ако вашата тестова матрица работи 5x на PR, това е истинско кумулативно спестяване.


uv е редкият инструмент, който е едновременно *по-бърз и по-опростен от това, което замества. Ако през 2026 г. пишете на Python, за да си изкарвате прехраната, прекарайте 10 минути в превключване на един проект. Навикът ще се пренесе във всеки нов проект, до който се докоснете.

Следваща стъпка: Python DevOps track обхваща uv, ruff, Docker и модерния стек за внедряване на Python — 104 интерактивни урока.

Готови ли сте да опитате?

15 безплатни уроци след безплатна регистрация — без карта. Изпробвайте платформата и след това решете.

Започнете безплатно →

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.