Я пишу некоторый код на Cython, и у меня есть "Пакеты" внутри "модулей" .- Это на самом деле продолжение моего вопроса там, и структура должна быть такой же.Проблема в том, что это Cython, поэтому я имею дело с .so
, а не .py
.
Наличие __init__.so
работает до такой степени, что
import mystuff
будет работать, но, похоже, маскирует все подпакеты ниже.То есть
import mystuff.test.test1
не будет.Я получаю ImportError: No module named ...
ошибку.
Как мне обойти это?Есть ли что-то, что мне нужно добавить в .pyx
перед компиляцией в .c
?Или, может быть, я могу переименовать __init__.so
во что-то еще и каким-то образом вставить его в __init__.py
(обратите внимание, что __init__.py
все еще должен существовать рядом с .so
, чтобы показать, что это пакет)?Или что-то еще.
Обновление: __path__
атрибут не определен для .so
пакетов ...
Хорошо, у меня была мысль, что, возможно, яможно обойти это, манипулируя атрибутом __path__
пакета.Интересно, что это определено для .py
пакетов, но вызывает ошибку с .so
.Это не решение, но мне интересно, является ли это корнем проблемы.