Следуя инструкциям в this SO answer, я создал пакет Python с подпакетами в виде подпапок, каждый из которых содержит файл __init__.py
(который полностью пуст).ImportError: Нет модуля с именем '' при импорте моего собственного подпакета
top_module
__init__.py
module_a.py
sub_module
__init__.py
module_c.py
я могу импортировать модуль верхнего уровня, но при попытке импортировать результаты суб-модуль в ImportError
:
>>> import top_module
>>> import top_module.sub_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sub_module
В IPython я могу автозаполнение top_model.
показать мне module_a.py
, но не sub_module
.
следовали инструкциям в this SO answer, но я просто получаю:
>>> top_module.__file__
'top_module.pyc'
, который не очень полезно. Интересно, что __package__
дает мне:
>>> print top_module.__package__
None
Я могу это сделать:
>>> import top_module
>>> import sub_module.module_c
Так почему бы не import top_module.sub_module.module_c
?
В каком каталоге вы работаете, когда выполняете эти команды? –
Хороший вопрос. Я либо: а) в командной строке, в каталоге top_module или b) в Spyder с каталогом top_module, добавленным в инструмент IDE «PYTHONPATH manager». – LondonRob