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

在pytest中发送HTTP请求遇requests导入错误的解决求助

解决pytest找不到已安装的requests模块问题

你遇到的核心问题是Python环境不匹配——虽然你已经在系统的Python 3.7环境里装了requests,但pytest实际调用的是另一个Python版本(比如Python 2或者未安装requests的其他3.x环境),导致模块找不到。下面是一步步的解决办法:

第一步:确认pytest使用的Python版本

先搞清楚问题出在哪,运行下面的命令查看pytest绑定的Python版本:

pytest --version

输出会类似这样:

pytest 6.2.5 from /usr/local/lib/python3.7/dist-packages/pytest (Python 3.7)

如果显示的Python版本和你安装requests的版本(比如上面的3.7)不一致,那就是问题的根源。

方法一:用对应版本的pip安装requests

如果pytest用的是Python 3,直接用pip3重新安装requests(确保和pytest的Python版本匹配):

pip3 install requests --upgrade

如果是Python 2的话(不推荐,Flask现在已经不支持Python 2了),就用pip安装。

方法二:用Python模块方式运行pytest

这种方式能强制pytest使用你指定的Python环境,比如你安装了requests的Python 3:

python3 -m pytest test/test_user.py

python3 -m会调用系统中Python 3的pytest模块,确保和你安装requests的环境一致。

方法三:检查并激活虚拟环境(强烈推荐)

如果你开发Flask应用时用了虚拟环境(比如venv、virtualenv),一定要先激活它,否则pytest会用系统环境,而你的依赖可能都装在虚拟环境里:

# 假设你的虚拟环境在项目根目录的venv文件夹下
source venv/bin/activate

激活后再运行pytest,或者重新安装requests到虚拟环境里:

pip install requests

虚拟环境是Python项目管理依赖的最佳实践,能彻底避免系统环境和项目环境的依赖冲突。

方法四:强制指定pytest的Python包路径

如果上面的方法都不行,可以在项目根目录创建pytest.ini文件,指定pytest使用的包路径:

[pytest]
python_paths = /usr/local/lib/python3.7/dist-packages

把路径换成你安装requests的那个Python包目录(就是你安装时显示的/usr/local/lib/python3.7/dist-packages),这样pytest会优先从这个路径加载模块。


额外提醒:开发Flask项目时,尽量用虚拟环境或者依赖管理工具(比如Poetry)来管理依赖,这样能避免绝大多数类似的环境问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:56:56