将 python Flask 应用程序上传到 Heroku 会引发错误

1 python heroku amazon-web-services flask

将我的 python Flask 应用程序上传到 Heroku 时,出现以下错误:

ERROR: Could not find a version that satisfies the requirement dataclasses==0.8 (from -r /tmp/build_d980c139/requirements.txt (line 4)) (from versions: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6)
remote:        ERROR: No matching distribution found for dataclasses==0.8 (from -r /tmp/build_d980c139/requirements.txt (line 4))
remote:  !     Push rejected, failed to compile Python app.
Run Code Online (Sandbox Code Playgroud)

Afr*_*man 6

Heroku 为您的应用程序安装最新的 python 版本。目前我假设它正在安装 python 版本 3.9.6。但从 python 3.8.0 开始,dataclasses==0.8 是预先构建的。该外部数据类库仅存在于 0.1 - 0.6 版本(在错误消息中显示),并且可能已停止升级,因为它现在存在于预构建版本中。由于它没有找到特定的 0.8 版本,因此它会抛出未找到错误。

现在要解决这个问题,有两种方法 - 最简单的方法是从requirement.txt中删除dataclasses==0.8并上传它。

另一种方法是在requirement.txt中保留dataclasses==0.8,并在requirement.txt所在的同一根目录中添加另一个名为“runtime.txt”的txt文件。还有这条线—— Python {yourspecifiedversion}。这将告诉 Heroku 要安装哪个 python 版本。您可以选择与所有外部库正确匹配的 python 版本。但如果 python 版本低于 3.8.0,则需要添加 'dataclasses==0.8'

在 Heroku 上指定 python 运行时位于此链接中 -指定 Python 运行时