Зачем нужен менеджер зависимостей
Управление зависимостями — это контроль версий библиотек, которые использует ваш проект. Без менеджера зависимостей:
pip: стандартный инструмент
▸Основные команды
1# Установка пакета2pip install requests34# Установка конкретной версии5pip install requests==2.31.067# Обновление8pip install --upgrade requests910# Удаление11pip uninstall requests1213# Сохранение зависимостей14pip freeze > requirements.txt1516# Установка из файла17pip install -r requirements.txt
▸requirements.txt
1requests==2.31.02flask==3.0.03sqlalchemy==2.0.234pytest==7.4.3
▸Проблемы pip
Poetry: современный подход
▸Установка Poetry
1curl -sSL https://install.python-poetry.org | python3 -
▸Создание проекта
1# Новый проект2poetry new my-project34# Инициализация в существующем проекте5cd my-project6poetry init
▸pyproject.toml
1[tool.poetry]2name = "my-project"3version = "0.1.0"4description = "My awesome project"5authors = ["John <john@example.com>"]67[tool.poetry.dependencies]8python = "^3.11"9requests = "^2.31.0"10flask = "^3.0.0"1112[tool.poetry.group.dev.dependencies]13pytest = "^7.4.3"14black = "^23.11.0"15mypy = "^1.7.0"
▸Основные команды
1# Установка зависимостей2poetry install34# Добавление зависимости5poetry add requests6poetry add --group dev pytest78# Удаление зависимости9poetry remove requests1011# Обновление12poetry update1314# Запуск команд в окружении15poetry run python script.py16poetry run pytest1718# Активация окружения19poetry shell
Сравнение
▸Управление версиями
▸Виртуальные окружения
▸Создание пакетов
▸Производительность
Когда использовать pip
Когда использовать Poetry
Переход с pip на Poetry
1# 1. Инициализация Poetry2poetry init34# 2. Импорт зависимостей из requirements.txt5poetry add $(cat requirements.txt | tr '6' ' ')78# 3. Удаление requirements.txt (опционально)9rm requirements.txt
Альтернативы
▸pipenv
1pipenv install requests2pipenv shell
▸pdm
1pdm init2pdm add requests
▸hatch
1hatch new my-project2hatch add requests
Заключение
Poetry — современный стандарт управления зависимостями в Python. Он решает проблемы pip: воспроизводимость, автоматическое управление окружениями, простая упаковка пакетов. Для новых проектов Poetry — лучший выбор. На собеседовании важно понимать разницу между инструментами и когда что использовать.