974просмотров
26.5%от подписчиков
4 февраля 2026 г.
Score: 1.1K
Наконец-то распробовал uv. Тот самый "убийца pip" на Расте от команды Astral. Удобненько, ооочень шустро работает, с зависимостями не косячит. Всё наше добро вписываем в pyproject.toml, делаем uv sync для установки, 5 секунд ждём и готово! Естественно, появится lock-файл, в котором будут зафиксированы все зависимости. Очень понравилось, как устроены "группы зависимостей". В одном файле prod/dev/test зависимости, только разнесённые по группам. На фоне пипа с миллионом файлов requirements.txt/requirements.test.txt и т.д - очень вкусно. Но и это не всё. Хотя избавиться от тормознутого pip'а это уже удовольствие. Есть еще кое-что: он умеет скачивать и устанавливать нужные версии Python. И переключаться между ними можно одной простой командой. ## Шпаргалка по командам - uv init — инициализировать новый проект с pyproject.toml
- uv add <package> — добавить пакет в зависимости и синхронизировать окружение
- uv remove <package> — удалить пакет из проекта
- uv sync — синхронизировать venv с текущим lock-файлом
- uv sync --all-groups — синхронизировать все группы зависимостей
- uv sync --only-group dev — синхронизировать только зависимости для dev-окружения
- uv sync --no-dev — синхронизировать всё, кроме dev-окружения
- uv lock — обновить только uv.lock без установки пакетов
- uv run <script.py> — запустить скрипт внутри изолированного окружения
- uv python install 3.13 — скачать и установить конкретную версию Python в систему
- uv python list — посмотреть список всех доступных и установленных версий Python version = "0.1.0"
dependencies = [ "fastapi == 0.115.0", "sqlalchemy >= 2.0.25", "uvicorn[standard] >= 0.27.0",
] [dependency-groups]
dev = [ "ruff ~= 0.2.0", "pytest >= 8.0.0, < 9.0.0",
] Еще из плюсов:
- Нормальный, человеческий (наконец-то!) мать его кэш! Один раз скачал библиотеку и всё. - Читаемый лок-файл uv.lock. Приемлемо выглядит в диффах. Хочется верить, что инструмент повторит судьбу ruff, который в итоге затащили вообще везде и всюду.