Ответ вслух Junior Модули, пакеты и окружения спрашивают часто обновлено

Как вы управляете зависимостями Python-проекта

Вопрос

Как вы управляете зависимостями и окружениями в Python-проекте?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Для каждого проекта своё виртуальное окружение, в системный Python ничего не ставлю. Сейчас в новых проектах использую uv: он создаёт .venv, держит зависимости в pyproject.toml, а точные версии всего дерева в uv.lock, который коммитится.

Что должно прозвучать в ответе

  • Отдельное виртуальное окружение на проект

  • Зависимости в `pyproject.toml`, разделение на основные и dev

  • Lock-файл с точными версиями для воспроизводимости

  • Инструмент: uv, Poetry или pip-tools

  • Обновления зависимостей контролируемо, проверка уязвимостей

  • В Docker ставить по lock-файлу

Что могут спросить следом

  • Чем requirements.txt отличается от lock-файла?
  • Как обновить одну зависимость, не трогая остальные?

Разбор

Образцовый ответ: «Для каждого проекта своё виртуальное окружение, в системный Python ничего не ставлю. Сейчас в новых проектах использую uv: он создаёт .venv, держит зависимости в pyproject.toml, а точные версии всего дерева в uv.lock, который коммитится. Зависимости делю на основные и группу dev: pytest, ruff, mypy. В pyproject указываю разумные диапазоны, а воспроизводимость обеспечивает lock-файл: CI и Docker-образ ставят ровно то же, что у меня, командой синхронизации по lock. Обновляю зависимости осознанно: точечно одну библиотеку с пересборкой lock, прогон тестов, раз в какое-то время массово, плюс проверка уязвимостей, например pip-audit или Dependabot. В старых проектах встречал Poetry и связку pip-tools с requirements.in и сгенерированным requirements.txt, принцип тот же».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме