【问题标题】:Uploading python flask app to Heroku raises error将 python 烧瓶应用程序上传到 Heroku 会引发错误
【发布时间】:2021-06-20 17:20:54
【问题描述】:

将我的 python 烧瓶应用程序上传到 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.

【问题讨论】:

  • 请发布您的 requirements.txt,因为这就是包含问题的内容。
  • appscript==1.1.2 chardet==4.0.0 click==8.0.1 dataclasses==0.8 docx2pdf==0.1.7 docx2txt==0.8 et-xmlfile==1.1.0 Flask= =1.1.2 gunicorn==20.1.0 importlib-metadata==1.7.0 itsdangerous==2.0.1 Jinja2==3.0.1 MarkupSafe==2.0.1 openpyxl==3.0.7 pdfminer3==2018.12.3.0 pycryptodome= =3.10.1 PyPDF2==1.26.0 sortedcontainers==2.4.0 tqdm==4.61.1 typing-extensions==3.10.0.0 Werkzeug==2.0.1 xlwt==1.3.0 zipp==3.4.1跨度>
  • @Rahul Kumar 你运行的是什么版本的python,heroku 上的版本是什么?
  • dataclasses 是内置的,从 requirements.txt 文件中删除。请参阅文档:docs.python.org/3/library/dataclasses.html
  • 错误:命令 '/usr/bin/gcc' 失败,退出代码 1 远程:------------ ----------------远程:错误:命令错误退出状态1:/app/.heroku/python/bin/python -u -c'import sys,setuptools,tokenize ; sys.argv[0] = '"'"'/tmp/pip-install-4t8ed_db/appscript/setup.py'"'"'; file__='"'"'/tmp/pip-install-4t8ed_db/appscript/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open) (__file);code=f.read().replace('"'"'\r\n'"'"',

标签: python amazon-web-services flask heroku


【解决方案1】:

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

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

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

在此链接中指定 Heroku 上的 python 运行时 - Specifying a Python Runtime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多