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