← Ко всем open source проектам

uv

astral-sh/uv

uv — быстрый менеджер пакетов и проектов Python от Astral, написанный на Rust: зависимости, скрипты, инструменты и версии Python.

Форки 3,184
Автор astral-sh
Язык Rust
Лицензия Apache-2.0
Обновлено 2026-06-10

Что это такое

uv — инструмент Astral для Python-пакетов и проектов, написанный на Rust. Он закрывает задачи, которые раньше часто делили между `pip`, `pip-tools`, `venv`, `pipx`, `poetry`, `pyenv` и отдельными скриптами.

Идея проекта — ускорить и упростить повседневный цикл Python: создать проект, зафиксировать зависимости, установить их, запустить скрипт в изолированном окружении, поставить консольный инструмент или выбрать версию Python.

Что внутри и как используют

В репозитории — Rust-код разрешателя зависимостей, установщика, команд управления проектом, работы с файлами блокировки, запуска инструментов и установки Python-версий. Документация показывает отдельные сценарии: проекты, скрипты, инструменты и версии Python.

Типовой сценарий: в новом проекте запускают `uv init`, добавляют зависимости, фиксируют lock-файл и используют `uv run` для команд. Для одноразовых инструментов применяют `uvx`, чтобы не засорять глобальное окружение.

Базовый цикл проекта

Команды показывают, как uv берет на себя создание проекта, добавление зависимости и запуск кода внутри управляемого окружения.

Язык: Bash
uv init app
cd app
uv add requests
uv run python -c "import requests; print(requests.__version__)"

Сильные стороны

Сильная сторона — скорость и единая модель. uv особенно заметен в CI, больших проектах и командах, где установка зависимостей повторяется много раз. Чем чаще окружение пересобирается, тем сильнее ощущается выигрыш.

Ограничения

Ограничение — миграция привычек. В Python-экосистеме уже есть много инструментов, и не каждый проект готов менять процесс. Перед переходом стоит проверить совместимость lock-файлов, внутренние зеркала, CI, публикацию пакетов и требования команды.