我有
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
毫无疑问,这是某种初学者的错误。但是我无法弄清楚出了什么问题。
我有
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
毫无疑问,这是某种初学者的错误。但是我无法弄清楚出了什么问题。
当您尝试import lib
像上面那样做时,Python 会尝试从您所在的目录开始查找导入(因此,例如,如果您在myapp
目录中,它会找到lib.py
并能够找到import lib
)。但是,当在包中导入时(基本上,任何带有 的__init__.py
),您应该使用显式包导入(如from myapp import lib
),以便 python 解释器知道在哪里查找。这还具有避免命名空间冲突的优点lib
(即,如果您位于其中的不同文件夹lib.py
中)。
底线:替换import lib
为from myapp import lib
,你会很好。
您应该__init__.py
在目录中添加文件tests/
。