Создание нескольких модулей Python в разных каталогах, которые разделяют часть структуры пакета

Я работаю над проектом Django, который содержит одно приложение. Приложение будет выпущено под лицензией GPL, поэтому я хочу разработать его отдельно от проекта - личного сайта, использующего приложение. Я пытаюсь использовать структуру пакета, основанную на моем доменном имени, как для проекта, так и для приложения, и там, где у меня возникают проблемы.

Вот моя файловая структура (с файлами __init__.py, где это уместно):

$HOME/django-sites/mydomain
$HOME/django-apps/mydomain/cms

И мой ПИТОНАТ

$HOME/django-sites:$HOME/django-apps

Если я запускаю интерпретатор Python (из любого каталога в файловой системе), я могу импортировать классы с сайта, но не из приложения. Если я переверну порядок двух записей в PYTHONPATH (сначала приложения, затем сайты), я смогу импортировать их из приложения, но не с сайта.

Похоже, что Python пытается импортировать только из первой записи в PYTHONPATH, которая содержит первую часть имени пакета. Это верно? Это ожидаемое поведение? Если это так, я могу вставлять модули только в такие структуры пакетов, как домен / приложение1, домен / приложение2, если они находятся в одной структуре каталогов - независимо от PYTHONPATH.

Это не шоу-стопор, потому что я могу переименовать сайт, но это сильно отличается от того, что я ожидал. В руководстве по Python упоминается __path__, но я понятия не имею, как его использовать:

Packages support one more special attribute, __path__. This is initialized to be a list containing the name of the directory holding the package’s __init__.py before the code in that file is executed. This variable can be modified; doing so affects future searches for modules and subpackages contained in the package.

While this feature is not often needed, it can be used to extend the set of modules found in a package.

Кто-нибудь еще сталкивался с этим? Что я могу сделать с __path__, чтобы сделать эту функцию, как ожидалось?

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

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