Мой пакет выглядит так:
example/
launcher.py
package/
__init__.py
a/
__init__.py
sub.py
b/
__init__.py
sub.py
m.py
launcher.py запускает m.py, который содержит функцию, которая вызывает a.sub.fun c ().
Пакет __init___.py
содержит импорт, в то время как b содержит следующее:
import os,sys
sys.path.append(os.path.join(os.path.abspath("package"),"a"))
print(sys.path)
import a
Запуск launcher.py приводит к:
File "C:\Users\m\Desktop\example\package\b\__init__.py", line 4, in <module>
import a
ModuleNotFoundError: No module named 'a'
Я также пробовал from .. import a
(вместо добавления sys.path), но он работает только в самом __init___.py
(при вызове там a.sub.fun c ()). Я прочитал много ответов на подобные проблемы, но до сих пор не могу это исправить.