🔥
uvидел, установил, победилЕсть вещи, которые в Python-разработке объединяют всех: любовь к удобным библиотекам и тихая усталость от долгой установки зависимостей.
Обычно, чтобы этого избежать, мы в команде вместо pip и poetry используем uv.
uv — это современный Python package manager и resolver от команды Astral (те же ребята, что делают Ruff). Он невероятно быстрый и при этом довольно удобный.
Вот что нам особенно понравилось:🟢Скорость
uv написан на Rust и использует продвинутые алгоритмы разрешения зависимостей (на основе pubgrub — тот же, что в poetry, но сильно оптимизированный). Это даёт значительный прирост производительности в разрешении зависимостей, парсинге, проверке хэшей и т.д. В наших проектах разница особенно заметна на CI и при работе с большим количеством зависимостей.
🟢Простая работа с окружениями
uv может заменить сразу несколько инструментов:
uv venv — быстрое создание виртуального окружения
uv pip install — ускоренная установка пакетов
uv sync — работа с pyproject.toml / requirements
🟢Параллельная загрузка и установка
Скачивает и устанавливает пакеты параллельно (много потоков).
Использует эффективный HTTP-клиент с HTTP/2 и хорошим кэшированием.
При повторной установке часто вообще ничего не скачивает — просто берёт из кэша.
Кэш shared между проектами (экономия места и времени).
🟢Отличная интеграция с Ruff и другими современными инструментами
Поскольку uv от тех же авторов, что и Ruff, они очень хорошо дружат между собой. Это позволяет держать весь Python-стек современным и быстрым.
Когда лучше использовать uv:- Хотите максимальную скорость разработки;
- Работаете в ML / Data Science (много тяжёлых пакетов);
- Часто создаёте новые окружения;
- Любите современный и минималистичный стек (Ruff + uv);
- Не нужны сложные build-системы и скрипт.
Когда лучше оставить Poetry:Если проект уже большой, стабильно работает на Poetry, а команда не хочет перестраивать привычные процессы без явной необходимости. Poetry также может быть удобнее, если вам нужны продвинутые возможности: группы зависимостей, скрипты, сложная сборка или полная совместимость со старыми инструментами.
👉 Мы постепенно переводим часть наших ML-пайплайнов и внутренних инструментов на uv — и пока очень довольны результатом. Рекомендуем попробовать, особенно если вы устали ждать, пока pip install завершит работу.
А как вы используете uv в своих проектах? Делитесь опытом в комментариях 🏃