我知道这应该很容易,而且我知道其他在线用户也提出了这个问题,但是我感觉自己理解了他们所有的答案和概念,但是我的导入仍然会引发错误。

我有这个目录结构

root/myPackage/
root/tests/test_1.py


在test_1.py中,我有:

import myPackage
...


我从根目录在命令行上运行:

$ pytest tests OR python tests/test_1.py


...什么都可以使此脚本真正运行。我以前用过pytest并运行过python脚本

我一直在

No module named 'myPackage' error


我以为如果从根目录运行测试,我仍然可以访问myPackage ...这确实与我以前的理解和互联网背道而驰...如果您知道我为什么导入错误,请发送帮助。

另外,当我从tests目录中取出test_1.py并从根目录运行它时,它没有错误。所以这个结构有效

root/myPackage/
root/test_1.py

最佳答案

根据提供的信息重新创建您的项目,我能够重现您的错误,并通过在tests目录下包含一个__init__.py文件来修复该错误。

这是我的项目结构:

root / myPackage


__init__.py
module.py


根/测试


__init__.py
test_1.py


那应该允许您成功运行pytest tests

10-07 12:19