使用Zappa部署AWS Lambda时遇dateutil.tz无UTC属性错误
解决Zappa部署AWS Lambda时python-dateutil版本冲突问题
我刚碰到过一模一样的问题,这是快速解决的步骤:
修复步骤
- 先卸载当前不兼容的python-dateutil版本:
pip uninstall -y python-dateutil - 安装Zappa要求的兼容版本(推荐2.6.1,是<2.7.0的稳定版):
pip install python-dateutil==2.6.1 - 如果用
requirements.txt管理依赖,记得把版本固定下来,避免后续再次出现版本冲突:python-dateutil==2.6.1
问题原因解释
你遇到的AttributeError: module 'dateutil.tz' has no attribute 'UTC'本质是版本兼容性问题:
- Zappa的旧版本明确要求
python-dateutil<2.7.0,而你当前安装的2.8.1版本对dateutil.tz.UTC的结构做了调整——在2.7.0及以后的版本中,这个属性被迁移到了dateutil.tz.tz.UTC,或者官方推荐直接使用标准库的datetime.timezone.utc。 - 但Zappa依赖的botocore旧版本或自身代码仍在使用旧的调用方式,导致在解析AWS API返回的时间戳时触发错误。
验证修复
安装完成后,可以在虚拟环境中验证是否解决了属性问题:
import dateutil.tz print(dateutil.tz.UTC) # 正常输出则说明修复成功
之后重新执行部署命令即可:
zappa deploy development
内容的提问来源于stack exchange,提问作者Supratik Majumdar
相关产品推荐
相关产品推荐

