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

使用Zappa部署Flask-Ask Alexa技能时遇KeyError问题求助

解决Zappa部署Flask-Ask Alexa技能时的KeyError: pip._vendor.urllib3.contrib.问题

哎,这个坑我之前踩过!大概率是pip版本和Zappa的兼容性冲突搞的鬼,新版本pip的内部结构变了,Zappa还没跟上适配。给你几个亲测有效的解决办法,按顺序试就行:

1. 回退到兼容的pip和urllib3版本

过高的pip版本(比如21.x及以上)很容易触发这个错误,先把版本锁回稳定兼容的:

  • 先卸载当前pip:pip uninstall -y pip
  • 安装指定版本:pip install pip==20.3.4
  • 同步安装适配的urllib3:pip install urllib3==1.26.6

2. 重建干净的虚拟环境

有时候虚拟环境里的依赖缓存会有残留,干脆重新搭一个:

  • 退出当前虚拟环境,删掉旧环境:rm -rf your_venv_name(Windows系统用rmdir /s your_venv_name)
  • 新建虚拟环境:python -m venv your_venv_name
  • 激活环境:source your_venv_name/bin/activate(Windows用your_venv_name\Scripts\activate)
  • 重新安装所有需要的依赖:pip install flask-ask zappa(别忘了加上你项目里的其他依赖包)

3. 临时修改Zappa源码绕过错误

如果上面两步都没解决,直接改Zappa的源码来适配新的pip结构:

  • 找到虚拟环境里Zappa的安装路径,比如your_venv_name/lib/pythonX.X/site-packages/zappa/(X.X是你的Python版本)
  • 打开utilities.py文件,找到调用pip._vendor.urllib3.contrib的代码块
  • 把原来的导入替换成直接引用urllib3:
    # 替换前的代码大概是这样:
    # from pip._vendor.urllib3.contrib import pyopenssl
    # 替换成:
    import urllib3.contrib.pyopenssl
    
  • 保存文件后,重新运行zappa deploy dev

4. 检查AWS和Zappa配置

最后再确认一下你的AWS凭证配置正确,zappa_settings.json里的dev环境配置没有拼写错误(比如AWS区域、IAM角色权限这些),有时候配置问题也会触发奇怪的依赖报错。

总结一下,尽量别随便把pip更到最新版,Zappa对新工具链的适配总是慢一步,保持依赖版本稳定能少踩很多坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:22:51