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

pytest运行子目录测试文件导入父目录Python模块报ModuleNotFoundError如何解决

问题原因

该报错是运行pytest时,Python的模块搜索路径(sys.path)未包含项目根目录导致的,无法识别根目录下的filea.py模块。编辑器通常会自动将项目根目录加入搜索路径,因此编辑阶段不会报错,仅在执行pytest命令时触发异常。

解决方法

方法1:使用python -m pytest执行测试

在项目根目录下直接运行如下命令即可,Python的模块运行模式会自动把当前目录加入sys.path,无需修改任何代码,是最推荐的临时解决方式:

python -m pytest

方法2:根目录新增conftest.py文件

在项目根目录下新建空的conftest.py文件,pytest运行时会自动把conftest.py所在目录加入模块搜索路径,之后直接运行pytest命令即可正常执行,调整后目录结构如下:

├── conftest.py
├── filea.py
└── tests
    └── test_filea.py

方法3:配置PYTHONPATH环境变量

执行pytest前临时指定PYTHONPATH为当前项目根目录即可:

  • Linux/macOS环境执行:
PYTHONPATH=. pytest
  • Windows Powershell环境执行:
$env:PYTHONPATH="."; pytest

如果需要永久生效,可以把项目根目录的绝对路径加入系统环境变量PYTHONPATH中。

方法4:使用pytest-pythonpath插件

先安装对应插件:

pip install pytest-pythonpath

然后在项目根目录新建pytest.ini配置文件,写入如下内容:

[pytest]
pythonpath = .

配置完成后直接运行pytest命令即可正常执行测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:09:00