1.
Рекомендуется ли включать "pyyaml==5.1.2
" в оба проекта * setup.py
, install_requires: ...
(или requirements.txt
как вы предпочитают) [...]?
Только приложения должны (возможно) прикрепить требования к определенной c версии. Библиотеки должны ограничиваться диапазоном известных совместимых версий (как можно точнее).
В целом, я считаю, что закрепление версий зависимостей в setup.py
(или pyproject.toml
) - плохая идея, поскольку они могут не может быть (легко) отменен конечным пользователем, который в конечном итоге устанавливает проекты (не важно, приложения или библиотеки) и тот, кто должен иметь последнее слово о том, что будет установлено. С другой стороны, рекомендуется дать рекомендацию о комбинации закрепленных версий зависимостей, которая, как известно, хорошо работает (потому что она была протестирована) в форме файла requirements.txt
, который конечный пользователь может использовать или нет (для приложений это не имеет особого смысла для библиотек).
Прочтите, например, статью Дональда Стиффта " setup.py vs needs.txt " .
2.
рекомендуется указывать только pyyaml как зависимость в проекте flan, а затем наследовать версию в родительском проекте, хотя тогда менее ясно, что pyyaml является зависимостью родительского проекта [...]?
Общее (очевидное) правило состоит в том, что все проекты должны перечислять все свои собственные зависимости и только свои собственные зависимости. Все остальное не имеет никакого смысла (конечно, как всегда могут быть исключения).