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

pytest测试报错ModuleNotFoundError: No module named 'prompts'求助

解决方案

1. 对齐项目结构与导入逻辑

先确认项目核心结构如下(确保src被标记为Python包):

项目根目录/
├── src/
│   ├── __init__.py  # 空文件即可,用于标记src为Python包
│   ├── main.py
│   ├── csv_methods.py
│   └── prompts.py
├── tests/
│   ├── test_xxx.py
└── Pipfile

测试文件里的导入必须以src作为包前缀,示例:

from src.csv_methods import your_target_function

2. 用PYTHONPATH指定模块搜索路径

在项目根目录(而非src目录)执行以下命令:

# 先激活pipenv虚拟环境
pipenv shell
# 将当前目录加入Python模块搜索路径,再运行pytest
PYTHONPATH=. pytest

这条命令会让Python把项目根目录纳入模块搜索范围,既可以识别src包,也能让csv_methods.py里的from prompts import *正常找到同目录下的prompts.py。

3. 用pytest配置文件省去重复设置

在项目根目录创建pytest.ini文件,写入以下内容:

[pytest]
pythonpath = .

之后直接在项目根目录执行pytest即可,pytest会自动加载该配置,无需每次手动设置PYTHONPATH。

4. 确保pytest在pipenv环境内运行

检查当前pytest是否属于pipenv虚拟环境:

which pytest

如果输出路径不在pipenv的venv目录下,重新激活虚拟环境并安装pytest:

pipenv shell
pip install pytest

5. 改用相对导入(可选)

若上述方法仍有问题,可修改csv_methods.py里的导入语句为相对导入:

# 替换原有的from prompts import *
from .prompts import *

这种写法更符合Python包的规范,能避免跨目录的路径识别问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:32:17