Serverless部署报错:本地找不到lambci/lambda:build-python3.6镜像如何解决
错误根因分析
核心报错定位:
ERROR: No matching distribution found for numpy==1.21.2
- 你当前使用的构建镜像是适配Python 3.6版本的Lambda运行环境,而numpy 1.21.2最低仅支持Python 3.7及以上版本,没有对应Python 3.6的适配发行包,因此安装失败
- 构建镜像内置的pip版本为21.0,版本较低也可能存在部分新发行包识别异常的问题
修复方案
根据你的实际使用场景二选一即可:
方案1:保留numpy 1.21.2版本
- 修改
serverless.yml配置文件中的Lambda运行时配置,将runtime: python3.6改为python3.7及以上支持的版本 - 同步修改构建镜像配置为对应Python版本,例如使用
lambci/lambda:build-python3.8和运行时版本匹配
方案2:保留Python 3.6运行时
- 修改
requirements.txt文件中的numpy依赖版本,降级到最后一个兼容Python 3.6的正式版本:numpy==1.19.5
通用优化配置(可选)
可以在serverless.yml的custom.pythonRequirements配置块中添加如下参数,避免后续出现同类问题:
custom: pythonRequirements: pipCmdExtraArgs: - --upgrade pip dockerizePip: true # 非Linux环境下建议开启,保证安装的依赖兼容Lambda的Linux运行环境
修改完成后先删除本地项目根目录下的.serverless缓存文件夹,再重新执行serverless deploy命令即可完成部署。
内容的提问来源于stack exchange,提问作者WhoDatBoy
相关产品推荐
相关产品推荐

