Python项目迁移3.8后Zappa部署出现Template无add_description属性错误
解决方法
错误根因说明
- 第一个
AttributeError: 'Template' object has no attribute 'add_description'报错:troposphere 3.x及以上版本移除了add_description方法,你当前使用的Zappa版本未适配高版本troposphere的API,所以调用失败。 - 第二个降级troposphere时的
use_2to3 is invalid报错:setuptools 58.0及以上版本移除了对use_2to3构建参数的支持,旧版troposphere的安装脚本依赖该参数,所以安装失败。
可选解决路径
路径1:调整依赖版本(适配性最好)
- 先降级setuptools到支持
use_2to3的最新可用版本,执行命令:pip install setuptools==57.5.0 - 再安装适配旧版Zappa的troposphere版本,执行命令:
pip install troposphere==2.7.1 - 重新执行Zappa部署命令即可正常运行。
路径2:升级Zappa版本
直接升级到Zappa官方最新正式版本,新版本已经完成对高版本troposphere的API适配,无需调整troposphere和setuptools版本即可正常部署。
额外注意事项
- 确认本地虚拟环境的Python版本和你要部署的Lambda运行时版本保持一致,你当前虚拟环境为Python3.7,项目已迁移到3.8,建议统一本地环境版本为Python3.8,避免后续运行时出现兼容问题。
- 部署前可执行
zappa validate校验配置文件语法,提前排查配置类错误。
内容的提问来源于stack exchange,提问作者Leila
相关产品推荐
相关产品推荐

