Ответ
Для проектов на Python часто рекомендуется использовать Poetry — современный инструмент для управления зависимостями. Он объединяет управление пакетами, виртуальными окружениями и публикацией в одном инструменте, обеспечивая более надежное и воспроизводимое управление зависимостями.
Почему Poetry?
Poetry помогает избежать проблем с конфликтами зависимостей и обеспечивает детерминированную установку пакетов благодаря файлу poetry.lock
.
Пример pyproject.toml
:
[tool.poetry]
name = "my_project"
version = "0.1.0"
description = "Awesome project"
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.8"
requests = "^2.25.1"
pandas = "^1.3.0"
[tool.poetry.dev-dependencies]
pytest = "^6.2.4"
black = "^21.7b0"
Основные преимущества Poetry:
- Изоляция окружений: Автоматическое создание и управление виртуальными окружениями.
- Детерминизм: Блокировка версий всех зависимостей через
poetry.lock
для воспроизводимых сборок. - Разделение зависимостей: Четкое разделение зависимостей для разработки (
dev-dependencies
) и продакшена. - Удобство публикации: Упрощенный процесс публикации пакетов в PyPI.
Альтернативы:
pip
+venv
(базовый подход)pipenv
(еще один инструмент для управления зависимостями и окружениями)