You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在tests目录添加__init__.py才能正常运行pytest?

Pytest场景下tests目录需添加__init__.py解决模块导入问题的原因

你的项目目录结构如下:

- src
  - config.py
- tests
   - conftest.py
   - 其他测试文件

你在tests/conftest.py中尝试从本地模块config导入dummy_func,用于创建fixture并结合Hypothesis策略使用,但运行pytest时出现ModuleNotFoundError,提示找不到config模块;而在tests目录添加空的__init__.py后,测试即可正常运行。该场景下需要这个文件的原因如下:

  • 没加__init__.py时,pytest会把tests目录直接加入Python的模块搜索路径(sys.path)。此时你在conftest.py里写import config,Python会优先在tests目录下查找对应模块,自然找不到src目录下的config.py,因此抛出错误。
  • 当tests目录添加__init__.py后,它会被Python识别为正式的Python包。此时pytest加载conftest.py时,会将tests的父目录(即项目根目录)加入sys.path。项目根目录进入搜索路径后,src目录下的config.py就能被Python检索到,导入操作也就正常执行了。

内容的提问来源于stack exchange,提问作者matsuo_basho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:15:59