uv - это сверхбыстрый пакетный менеджер для Python от Astral (создатели ruff).
- ⚡ В 10-100 раз быстрее pip
- 🦀 Написан на Rust
- 📦 Совместим с pip
- 🔒 Генерирует lock файл
- 🎯 Один инструмент для всего (venv + pip + pip-tools)
curl -LsSf https://astral.sh/uv/install.sh | shpowershell -c "irm https://astral.sh/uv/install.ps1 | iex"pip install uvbrew install uvПроверка:
uv --versionuv venvАктивировать:
source .venv/bin/activate # macOS/Linux
.venv\Scripts\activate # Windowsuv pip install -e .Это установит всё из pyproject.toml.
uv pip install -e ".[dev]"# Редактируй pyproject.toml, добавь в dependencies
uv pip install <package>uv pip install -e . --upgradeuv pip sync requirements.txt # если есть requirements.txt
# или
uv pip install -e .Проект использует pyproject.toml (современный стандарт):
[project]
dependencies = [
"fastapi>=0.104.1",
"uvicorn[standard]>=0.24.0",
...
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.3",
...
]Преимущества pyproject.toml:
- ✅ Стандарт PEP 621
- ✅ Метаданные проекта в одном месте
- ✅ Разделение dev/prod зависимостей
- ✅ Конфигурация инструментов (ruff, pytest)
requirements.txt оставлен для совместимости.
git clone <repo>
cd python-clean-templateuv venv
source .venv/bin/activateuv pip install -e ".[dev]"python main.pyDockerfile обновлён для использования uv:
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
RUN uv pip install -e .Это значительно ускоряет сборку образа!
| Операция | pip | uv | Ускорение |
|---|---|---|---|
| Установка зависимостей | 30s | 1s | 30x |
| Создание venv | 3s | 0.1s | 30x |
| Разрешение зависимостей | 20s | 0.5s | 40x |
uv venv && source .venv/bin/activateuv pip install -e ".[dev]"uv pip install --upgrade fastapiuv pip listuv pip uninstall <package>uv pip freeze > requirements.txt- ⚡ uv в 10-100 раз быстрее
- 🔒 uv лучше разрешает зависимости
- 📦 uv совместим с pip
- ⚡ uv намного быстрее
- 📝 Poetry имеет встроенный lock файл
- 🎯 Poetry - полноценный менеджер проектов
- 🔧 uv - замена pip, проще в использовании
- ⚡ uv быстрее
- 📦 PDM следует PEP 582
- 🎯 uv проще и легче
- Скорость - главное преимущество
- Простота - работает как pip, но быстрее
- Совместимость - можно использовать с существующими проектами
- Активное развитие - от создателей ruff
- Современность - поддержка pyproject.toml
Если у вас есть requirements.txt:
# Создать pyproject.toml на основе requirements.txt
# (сделано вручную в проекте)
# Установить через uv
uv pip install -r requirements.txtПроект уже мигрирован! 🎉
Указывает версию Python:
3.11
Основной файл конфигурации:
[project]
requires-python = ">=3.11"
dependencies = [...]uv venv # создать окружение
uv pip install -e . # установить проект
uv pip install -e ".[dev]" # + dev зависимости
uv pip install <package> # добавить пакет
uv pip list # список пакетов
uv pip freeze > requirements.txt # заморозитьГотово! uv настроен и готов к использованию! ⚡