上传Python Flask应用到Heroku时出现dataclasses==0.8依赖匹配失败错误
问题根源
- PyPI 平台上公开的第三方
dataclasses包最高仅发布到 0.6 版本,不存在你requirements.txt中声明的 0.8 版本,直接触发依赖匹配失败 - Python 3.7 及以上版本已经将
dataclasses内置到标准库中,不需要额外通过 pip 安装,额外声明低版本第三方依赖反而会和标准库功能冲突
修复方案
- 如果你用 Python 3.7 及以上版本运行项目:
直接删除requirements.txt里的dataclasses==0.8行,重新推送代码到 Heroku 就能正常构建 - 如果你必须用 Python 3.6 及更早版本运行项目:
把requirements.txt里的dataclasses==0.8改成dataclasses==0.6,同时在项目根目录新建runtime.txt文件,写入python-3.6.15指定 Heroku 用对应版本的 Python 环境构建即可
前置校验
修改后可以先在本地执行 pip install -r requirements.txt 确认依赖安装无报错,再推送到 Heroku 减少部署失败概率。
内容的提问来源于stack exchange,提问作者Rahul Kumar
相关产品推荐
相关产品推荐

