時,按照在this SO answer說明我已經創建了一個Python包與子包的子文件夾,每一個__init__.py
文件(這些都是完全空)。導入錯誤:沒有模塊名爲'導入我自己的子包
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
?
當您運行這些命令時,您處於哪個目錄? – 2014-10-07 13:32:56
好問題。我要麼是a)在命令行,在top_module目錄中,或者b)在Spyder中,將top_module目錄添加到該IDE的「PYTHONPATH管理器」工具中。 – LondonRob 2014-10-07 13:58:07