部署Django应用到Heroku遇python-dateutil依赖冲突推送失败求助
问题根因
你遇到的冲突并非Heroku平台本身要求python-dateutil 1.5版本,而是你的requirements.txt中误引入了早已停止维护的旧版heroku Python第三方库,该库的依赖硬限制了python-dateutil必须为1.5版本,和你项目中botocore等依赖要求的>=2.1版本形成冲突。你本地安装的heroku3是旧版heroku库的替代维护版本,本身不会限制python-dateutil版本,只是你没有正确同步到依赖清单中。
解决方案
- 第一步:打开项目根目录下的
requirements.txt文件,删除其中heroku==0.1.4相关的条目,替换为你本地使用的heroku3==5.1.4。如果你的项目代码中没有用到Heroku相关的Python API调用,直接删除所有heroku、heroku3相关的依赖条目即可——Heroku部署用的命令行工具是独立的系统级程序,不需要放入Python项目依赖中。 - 第二步:执行以下命令清除Heroku侧的构建缓存,避免旧的依赖缓存影响新构建:
heroku builds:cache:purge -a 替换为你的Heroku应用名称
- 第三步:重新执行推送命令部署即可:
git push heroku master
- 如果以上操作后仍然有依赖报错,可以暂时删除
requirements.txt中python-dateutil==2.8.2的版本锁定,让pip自动适配所有依赖都兼容的版本即可。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

