Этот вопрос следует за The way to make namespace packages in Python и How do I create a namespace package in Python?.Пакеты пространства имен с основной частью?
Примечание PEP 420 и distribute docs, что состояние:
Вы НЕ должны включать в себя какой-либо другой код и данные в пакете имен-х
__init__.py
. Несмотря на то, что он может работать во время разработки или когда проекты установлены как файлы.egg
, это не сработает, когда проекты будут установлены с использованием «системных» инструментов упаковки - в таких случаях файлы__init__.py
не будут установлены, а тем более выполнены.
Это все кажется, что сделать это невозможно иметь «основной библиотеки» пакет с распределенными независимо друг от друга расширения суб-пакетов. То, что я хочу, чтобы иметь возможность:
определить пакет основной библиотеки, которые будут использоваться как это:
import mylibrary mylibrary.some_function()
позволяет расширение библиотеки, упаковываются и поставляются отдельно, которые будут использоваться, как это :
import mylibrary.myextension mylibrary.myextension.some_other_function()
Я бы ожидать, чтобы быть в состоянии сделать это с пакетами пространства имен, но это, кажется, не быть в зависимости от вопросов и ссылок выше. Это можно сделать вообще?
Я до сих пор не могу поверить, что это все еще имеет место с современным Python. Это, безусловно, делает определение основных частей для удобства в вашем пакете пространства имен довольно «трудным»:/ –