Django项目使用pyfcm报错:ModuleNotFoundError: No module named 'requests.adapters'
解决Django中pyfcm导入requests.adapters失败的问题
看起来你遇到的是pyfcm依赖的requests库没有正确安装或环境不匹配的问题,下面是几个可行的解决方案:
1. 彻底重装requests库
有时候依赖安装会因为缓存或部分安装失败导致异常,先卸载再重新安装可以解决这类问题:
pip uninstall -y requests pip install requests
如果你的项目是用Docker部署的(从错误日志里的rolla_django容器名来看大概率是),要确保Docker构建阶段正确执行了依赖安装,建议在Dockerfile里添加--no-cache-dir避免缓存干扰:
RUN pip install --no-cache-dir -r requirements.txt
2. 指定requests的兼容版本
pyfcm对requests有版本依赖,仅写requests可能会安装最新版,偶尔会出现兼容性问题。你可以在requirements.txt里指定一个稳定的兼容版本,比如:
requests~=2.31.0
之后重新安装依赖:
pip install -r requirements.txt
3. 验证Python环境的依赖状态
先确认当前项目使用的Python环境里requests是否正常安装:
打开Python终端,执行以下代码:
import requests.adapters
如果这条命令没有报错,说明requests安装正常,问题可能出在pyfcm的导入路径或环境切换上;如果还是报错,那说明你的Python环境里确实没有正确安装requests,需要检查是否激活了正确的虚拟环境,或者Docker容器里的Python环境配置是否有误。
4. 指定pyfcm的稳定版本
如果上面的方法都无效,可以尝试锁定pyfcm的版本,比如选择经过验证和requests 2.x兼容的版本:
pyfcm~=1.5.1
然后重新安装依赖即可。
内容的提问来源于stack exchange,提问作者Ahmed Wagdi
相关产品推荐
相关产品推荐

