0

我有

myapp/
    __init__.py
    lib.py
    tests/
        lib_test.py

在 lib_test.py 我有:

import lib

从 myapp 运行时:

python tests/lib_test.py

我收到一个错误

ImportError: No module named lib

毫无疑问,这是某种初学者的错误。但是我无法弄清楚出了什么问题。

4

2 回答 2

5

当您尝试import lib像上面那样做时,Python 会尝试从您所在的目录开始查找导入(因此,例如,如果您在myapp目录中,它会找到lib.py并能够找到import lib)。但是,当在包中导入时(基本上,任何带有 的__init__.py),您应该使用显式包导入(如from myapp import lib),以便 python 解释器知道在哪里查找。这还具有避免命名空间冲突的优点lib(即,如果您位于其中的不同文件夹lib.py中)。

底线:替换import libfrom myapp import lib,你会很好。

于 2013-06-08T09:08:39.340 回答
1

您应该__init__.py在目录中添加文件tests/

于 2013-06-08T07:45:02.687 回答