У меня есть проект Python 3 со следующей структурой:
project/
|
+--root/
|
+--__init__.py
|
+--sub/
|
+--__init__.py
|
+--actualcode.py
Я хочу использовать «пакеты пространства имен», чтобы моя библиотека разделяла общее пространство имен с другими связанными библиотеками в отдельных проектах.Оператор импорта должен выглядеть следующим образом:
from root.sub.actualcode import something
Файл __init__.py
в корневой папке содержит следующую инструкцию для создания пакета пространства имен:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
Но я не могу сослаться накод, когда я импортирую root.sub
.Это работает, только когда я пишу:
from sub.actualcode import something # doesn't work with "root.sub..."!
Что я должен сделать, чтобы использовать root
в качестве пространства имен?