Python: общий код для семейства скриптов

m написание семейства скриптов Python внутри проекта; каждый скрипт находится в подкаталоге проекта, например так:

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

Теперь несколько скриптов разделяют некоторый код. Общий код лучше всего рассматривать как часть самого проекта, а не то, что я бы скомпилировал отдельно и сделал из библиотеки, или поместил бы в PYTHONPATH. Я мог бы разместить этот код в разных местах, например, вprojectroot сам каталог, или в дочернем каталогеprojectroot называетсяcommon (Возможно).

Тем не менее, большинство способов, о которых я до сих пор думал, включают создание пакетов из моих подпроектов с пустыми__init__.py файлы и использование относительного импорта (или излишне возиться сsys.path в каждом подпроекте. Хуже того, кажется, что создание структуры пакета вокруг этого семейства сценариев противоречит следующему предупреждению от отклоненногоPEP-3122:

Внимание! Этот ПКП был отклонен. Гвидо рассматривает выполнение скриптов в пакете как анти-шаблон.

Если сценарии в пакете не являются шаблонными, как я могу настроить их так, чтобы общий код оставался в одном проекте? Или здесь приемлема модульная и пакетная система? Какой самый чистый подход? (FWIW Я бы предпочел иметь такой файл, какshared.py или жеcommon.py в корневом каталоге проекта, вместо создания каталога утилит, который является родным для "реальный» подпроекты.)

Ответы на вопрос(3)

Ваш ответ на вопрос