Перейти до основного вмісту
Інструмент 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 | 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 run <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

Крок «компіляції» є детермінованим — той самий вхід, той самий вихід, байт за байтом. Ідеально підходить для відтворюваної КІ.

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-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. Середовища із зазором із заблокованим дзеркалом `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 охоплює 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.