Выбор ответа Middle Модули, пакеты и окружения спрашивают часто обновлено
Зачем lock-файл зависимостей
Вопрос
Зачем нужен lock-файл (uv.lock, poetry.lock) при наличии зависимостей в pyproject.toml?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Фиксирует точные версии всех зависимостей, включая транзитивные. В pyproject.toml пишут допустимые диапазоны (django=5.2,<6), и без lock-файла завтрашняя установка может притянуть другие версии транзитивных пакетов.
Варианты ответа
- Фиксирует точные версии всех зависимостей, включая транзитивныеправильный ответ
- Запрещает другим разработчикам менять зависимости проекта
- Заменяет
pyproject.toml, после генерации lock-файла его можно удалить - Нужен только для публикации пакета на PyPI вместе с wheel
Разбор
В pyproject.toml пишут допустимые диапазоны (django>=5.2,<6), и без lock-файла завтрашняя установка может притянуть другие версии транзитивных пакетов. Lock фиксирует точное дерево, обычно с хешами, и CI, прод и ноутбук ставят одно и то же. Он не заменяет pyproject.toml и не нужен для публикации библиотеки: библиотеки как раз публикуют с диапазонами.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.