Код: Выделить всё
projectroot
|
|- subproject1
| |
| |- script1.main.py
| `- script1.merger.py
|
|- subproject2
| |
| |- script2.main.py
| |- script2.matcher.py
| `- script2.merger.py
|
`- subproject3
|
|- script3.main.py
|- script3.converter.py
|- script3.matcher.py
`- script3.merger.py
Однако большинство способов, которые я придумал до сих пор, включают создание пакетов из моих подпроектов с пустыми файлами __init__.py и использование относительного импорта (или избыточное использование sys.path в каждом Хуже того, похоже, что построение структуры пакета на основе этого семейства скриптов противоречит следующему предупреждению от отклоненного PEP-3122:
Внимание! Этот PEP отклонен. Гвидо рассматривает запуск скриптов внутри пакета как антишаблон.
Если скрипты внутри пакета. является антипаттернистским, как я могу настроить так, чтобы общий код оставался в одном проекте? Или здесь приемлема система на основе модулей и пакетов? Какой подход самый чистый? (Кстати, я бы предпочел иметь файл, например, Shared. py или common.py в корневом каталоге проекта, вместо того, чтобы создавать каталог утилит, который является родственным «настоящим» подпроектам.)
Подробнее здесь: https://stackoverflow.com/questions/180 ... of-scripts