Gitpod环境下Git推送Django博客至Heroku失败求助
解决Django博客部署Heroku时backports.zoneinfo编译失败问题
问题根源
从错误日志来看,核心故障是backports.zoneinfo==0.2.1在Python 3.10.7环境下编译失败:其C扩展代码引用的_PyLong_One符号在Python 3.10的API中已变更,导致gcc编译报错。另外需要注意,Python 3.9及以上版本原生内置了zoneinfo模块,完全不需要依赖这个回溯兼容包。
解决方案
方案1:直接移除backports.zoneinfo依赖(推荐)
编辑你的requirements.txt文件,删除backports.zoneinfo==0.2.1这一行,然后执行以下命令重新部署:
git add requirements.txt git commit -m "移除不必要的backports.zoneinfo依赖" git push heroku master
方案2:升级backports.zoneinfo到兼容版本
如果你的代码需要兼容更低版本的Python,将requirements.txt中的版本改为backports.zoneinfo>=0.2.2(该版本修复了Python 3.10的编译问题):
backports.zoneinfo>=0.2.2
提交更改后重新部署:
git add requirements.txt git commit -m "升级backports.zoneinfo到兼容版本" git push heroku master
额外提示
- 当前
runtime.txt中的Python 3.10.7与Django 4.1.2版本兼容(Django 4.1.x支持Python 3.8-3.11),无需更换Python版本。 - Heroku的重复版本警告仅提示推送了相同代码版本,不影响部署,解决依赖问题后即可正常推送。
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

