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

使用pytest进行单元测试时出现ModuleNotFoundError错误是什么原因?

pytest运行时报ModuleNotFoundError: No module named 'package'解决方案

报错原因

Python导入模块时会扫描sys.path列表中存储的所有路径,匹配对应的模块文件。默认直接运行pytest命令时,不会自动将你的项目根目录加入sys.path,因此tests目录下的测试文件无法找到上层的package模块。

解决方案

方案1:安装可编辑版本的本地包(最推荐)

你的项目根目录已经存在setup.py,直接在根目录执行以下命令,将本地包以可编辑模式安装到当前Python环境中,全局可导入:

pip install -e .

注意执行该命令前请先激活你当前使用的Python虚拟环境,避免安装到全局环境中。
后续不管在哪里运行pytest都可以正常导入package下的模块。

方案2:修改pytest配置

在项目根目录新建pytest.ini配置文件,写入以下内容,指定pytest运行时自动将根目录加入模块搜索路径:

[pytest]
pythonpath = .

配置完成后直接运行pytest即可正常导入。

方案3:用Python模块方式启动pytest

运行测试时不直接执行pytest命令,改用以下命令启动:

python -m pytest

python -m启动模块的逻辑会自动将当前工作目录加入sys.path,无需额外修改配置。

方案4:测试文件临时修改搜索路径(不推荐)

如果仅临时调试不想修改全局配置,可以在每个测试文件的最开头加入以下代码:

import sys
sys.path.append('.')

该方法侵入性较强,仅适合临时调试使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:39:00