我有這樣的樹:Python導入不起作用
package/
subpackage1/
__init__.py
impl/
__init__.py
moduleA.py
moduleA_test.py
subpackage2/
__init__.py
impl/
__init__.py
moduleB.py
在moduleA.py
我有這樣的代碼:
from subpackage2.impl.moduleB import func_abc
模塊moduleA_test.py
只是進口moduleA
並測試其功能。 當在終端中時,如果我在文件夾package
中並運行python
,然後from subpackage1.impl import moduleA
,它可以正常工作。
但是,如果我運行python submodule1/impl/moduleA_test.py
(仍位於package
文件夾中),代碼會在上面寫入的導入行中引發錯誤。我得到ImportError: No module named subpackage2.impl.moduleB
。
我也試過用python -m submodule1.impl.moduleA_test.py
但沒有運氣。
從哪個目錄運行代碼?如果它在'package'中,那麼我認爲你不應該有任何問題。 –
默認情況下Python會在* current directory *中查找 - 您必須追加到'sys.path'或使用'PYTHONPATH'環境變量。 https://docs.python.org/2/tutorial/modules.html 6.1.2 – cdarke
是的,它在'package'中。我已經更新了這個問題 – thecoparyew