gpt4 book ai didi

python - 推送被拒绝,无法编译 Python 应用程序 - Python 版本错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:23 28 4
gpt4 key购买 nike

我过去曾将 Heroku 与 PHP 结合使用,但这是我第一次将 Heroku 与 Python 和 Flask 结合使用。首先,我想创建一个简单的“Hello World”应用程序,然后上传一个我构建的更复杂的程序。因此,项目的文件夹包含以下内容:

  • 一个“Hello World”Python 脚本(称为 Main.py):

    from flask import Flask, render_template

    app = Flask(__name__)

    @app.route("/")
    def index():
    return render_template("index.html", message="Hello World")

    if __name__ == "__main__":
    app.run(debug=True)
  • 一个 templates 文件,里面有一个 index.html 文件(见上文)

  • 一个runtime.txt文件:

    python-3.6.5
  • 一个requirements.txt文件:

    Flask==1.0.1

(该项目最初位于/Users/User/PycharmProjects/Project_HelloWorld。)

但是,当我在终端输入 git push heroku master 时,出现以下错误:

Counting objects: 85, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (82/82), done.
Writing objects: 100% (85/85), 5.01 MiB | 3.13 MiB/s, done.
Total 85 (delta 24), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: ! The latest version of Python 3 is python-3.6.5 (you are using {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
remote: {\fonttbl\f0\fmodern\fcharset0 Courier;}
remote: {\colortbl;\red255\green255\blue255;\red43\green47\blue49;\red237\green237\blue244;}
remote: {\*\expandedcolortbl;;\cssrgb\c21961\c24314\c25098;\cssrgb\c94510\c94510\c96471;}
remote: \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
remote: \deftab720
remote: \pard\pardeftab720\partightenfactor0
remote:
remote: \f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
remote: python-3.6.5}, which is unsupported).
remote: ! We recommend upgrading by specifying the latest version (python-3.6.5).
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
remote: {\fonttbl\f0\fmodern\fcharset0 Courier;}
remote: {\colortbl;\red255\green255\blue255;\red43\green47\blue49;\red237\green237\blue244;}
remote: {\*\expandedcolortbl;;\cssrgb\c21961\c24314\c25098;\cssrgb\c94510\c94510\c96471;}
remote: \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
remote: \deftab720
remote: \pard\pardeftab720\partightenfactor0
remote:
remote: \f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
remote: python-3.6.5}
remote: ! Requested runtime ({\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
remote: {\fonttbl\f0\fmodern\fcharset0 Courier;}
remote: {\colortbl;\red255\green255\blue255;\red43\green47\blue49;\red237\green237\blue244;}
remote: {\*\expandedcolortbl;;\cssrgb\c21961\c24314\c25098;\cssrgb\c94510\c94510\c96471;}
remote: \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
remote: \deftab720
remote: \pard\pardeftab720\partightenfactor0
remote:
remote: \f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
remote: python-3.6.5}) is not available for this stack (heroku-16).
remote: ! Aborting. More info: https://devcenter.heroku.com/articles/python-support
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to evening-sierra-26101.
remote:
To https://git.heroku.com/evening-sierra-26101.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/evening-sierra-26101.git'

如何修复此错误并在 Heroku 上正确运行我的应用程序?

此外,当我在终端输入 cat runtime.txt 以获取上面的 runtime.txt 时,我得到以下(非常意外?)输出:

{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
{\fonttbl\f0\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;\red43\green47\blue49;\red237\green237\blue244;}
{\*\expandedcolortbl;;\cssrgb\c21961\c24314\c25098;\cssrgb\c94510\c94510\c96471;}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\partightenfactor0

\f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
python-3.6.5}%

我首先在 runtime.txt 中使用 python-3.6.4(而不是 python-3.6.5)进行了尝试,但我遇到了同样的错误。

最佳答案

首先,我会弄清楚如何使用 gunicorn 运行您的应用程序,因为这是 Flask 应用程序最常见的部署服务器。要使用 gunicorn 运行您的应用程序,您应该能够 pip install gunicorn,然后从项目的根目录运行:gunicorn my_file_name:app,其中 my_file_name == 名称上面包含您的 Flask 代码的文件。例如。如果您的 Flask 代码位于名为 app.py 的文件中,您将运行 gunicorn app:app

一旦您可以使用 gunicorn 运行应用程序,请创建一个 Procfile,指定您希望 Heroku 使用 gunicorn 运行服务器。以下是 Procfile 的内容,它应该位于项目文件的根目录中(与 requirements.txt 相同的目录):

web: gunicorn app:app

然后我会更新 requirements.txt。执行 pip freeze | grep gunicorn 获取您的 gunicorn 版本,然后将其添加到 requirements.txt 文件中:

Flask==1.0.1
gunicorn==19.7.1

最后,为了解决上述错误的直接原因,我将 runtime.txt 设置为:

python-3.6.4

然后 git push heroku master 应该能让你继续......

如果一切都失败了,here's a simple repository在自述文件中有一个带有 Heroku 部署说明的准系统 Flask 应用程序。它部署在这里:https://myapp-name-1.herokuapp.com/

关于python - 推送被拒绝,无法编译 Python 应用程序 - Python 版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230255/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com