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

VS Code使用AWS SAM本地调用Python Lambda出现six.moves.winreg导入错误

问题根因

该报错核心为平台依赖兼容问题:winreg是仅Windows系统存在的内置模块,你打包的Lambda层依赖中python-dateutil库是在Windows本地环境安装的,带有Windows专属的代码逻辑,放到SAM模拟的Linux架构Lambda运行容器中执行时,触发导入失败。
上周五可正常运行、周一更新后报错,是因为你更新依赖、或调整层配置时,误将Windows本地生成的依赖包打到了Lambda层中。

修复步骤
  • 第一步:清理所有本地缓存
    删除三个Lambda层对应目录下的__pycache__、.pyc等Windows生成的缓存文件,以及存放依赖的site-packages目录,彻底清除已安装的Windows版本依赖。
  • 第二步:使用容器环境重新打包依赖
    不要在Windows本地直接pip安装依赖到层目录,使用SAM官方的容器构建方式打包,执行命令:
    sam build --use-container
    
    该命令会自动拉取对应Python版本的Lambda官方容器,在Linux环境下安装所有依赖,避免平台兼容问题。
  • 第三步:临时验证方案
    要快速确认是否为层依赖问题,可以先注释掉template.yaml中Services2配置的Layers字段,在Lambda代码目录本地执行pip install boto3 aws-lambda-powertools后重新调用,确认报错是否消失。
  • 第四步:补充配置检查
    你当前launch.json中的containerBuild参数已正确设为true,可额外添加构建参数强制容器构建:
    "sam": {
        "containerBuild": true,
        "buildArguments": "--use-container"
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:45:02