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

Python 3.12 Lambda项目无法导入botocore.vendored.six.moves模块求助

问题解决:Runtime.ImportModuleError: No module named 'botocore.vendored.six.moves'

错误根源

新版botocore已移除botocore.vendored.six模块,AWS不再维护该 vendored 依赖,同时Python 3.12的运行时环境也不再兼容这种旧的导入方式。

解决方案

1. 替换导入语句

找到代码中类似以下的导入代码:

from botocore.vendored.six.moves import urllib  # 或其他six.moves下的模块

替换为两种可行方式之一:

  • 方式一:使用Python 3原生实现
    针对原本依赖six兼容层的功能,直接改用Python 3标准库实现,比如urllib相关功能:
    from urllib.parse import urlencode, urlparse  # 按需导入具体模块
    
  • 方式二:单独安装并导入six库
    先通过pip安装six:
    pip install six
    
    再修改导入语句:
    from six.moves import urllib  # 或其他你需要的模块
    

2. 确认Lambda运行时兼容性

部署Lambda函数时,指定运行时为python3.12,确保AWS Lambda已支持该版本(当前已正式提供支持)。

3. 对齐本地与线上依赖环境

  • 本地开发时,用requirements.txt明确管理依赖版本,避免本地与线上环境差异:
    boto3>=1.34.0
    botocore>=1.37.0
    six>=1.16.0  # 仅当需要保留six依赖时添加
    
  • 若依赖较多,可将依赖打包为Lambda Layer,统一管理线上运行环境的依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:42:33