Перейти к основному содержимому
Инструменты 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% того, что вы делаете ежедневно, и два случая, когда вам следует придерживаться классических инструментов.

Что заменяет уф

| Классический инструмент | ультрафиолетовый эквивалент | Ускорение |

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

| python -m venv .venv | ув венв | ~5x |

| pip install pkg | uv pip install pkg | ~10-50x |

| pip install -r требования.txt | uv pip install -r требования.txt | 20-100x в холодном кеше |

| pip-compile (pip-tools) | uv pip компиляция | ~50x |

| python -m venv + source active для каждого проекта | uv run <cmd> | Полностью пропускает активацию |

Разница в скорости реальная. Установка умеренного проекта Django (Django + DRF + celery + redis + boto3 + ~40 транзитивных депов) на холодный кеш занимает ~45 секунд с помощью pip и ~2 секунды с uv. В теплом кеше uv по существу работает мгновенно, потому что он использует глобальный жестко связанный кеш вместо копирования файлов в каждый венв.

Пять команд, которые вы действительно будете использовать

###1. Устанавливаем сам ув

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 install, потом venv, then active».

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. Выполнить команду без активации венва

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-first)

Для проектов, начинающихся с нуля, используйте собственный рабочий процесс uv — вообще без требований.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 секунд. Если ваша тестовая матрица работает в 5 раз на PR, это реальная совокупная экономия.


uv — это редкий инструмент, который одновременно быстрее и проще, чем тот, который он заменяет. Если вы зарабатываете на жизнь написанием Python в 2026 году, потратьте 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.