Python导入不起作用

时间:2017-01-17 18:33:55

标签: python python-2.7 python-import

我有这样的树:

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,但没有运气。

1 个答案:

答案 0 :(得分:0)

当您编写from subpackage2.impl.moduleB import func_abc时,它会搜索与您的代码相同的目录中的subpackage2文件夹,即package.subpackage1.impl。

因此,当您编写import语句时,它会搜索不存在的package.subpackage1.impl.subpackage2.impl.moduleB,因此会出错。