部署到Heroku时Flask应用程序出错=error code=H10 desc=“应用程序崩溃”method=GET path="/”

b1uwtaje  于 2022-11-13  发布在  其他
关注(0)|答案(8)|浏览(171)

在Heroku中部署时,样品瓶应用程序在以下位置出现错误:=error code=H10 desc=“应用程序崩溃”method=GET path="/”。
Flaskapp.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "<h1> Deployed to Heroku</h1>"

if __name__ == "__main__":
    app.run()'''

波切雷

web : gunicorn flaskapp:app

requirements.txt

Click==7.0
Flask==1.1.1
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
Werkzeug==0.16.0

错误记录如下

2020-01-10T10:35:14.658092+00:00 heroku[web.1]: Starting process with command `: gunicorn flaskapp:app`
2020-01-10T10:35:16.404755+00:00 heroku[web.1]: State changed from starting to crashed
2020-01-10T10:35:16.381754+00:00 heroku[web.1]: Process exited with status 0
2020-01-10T10:35:19.000000+00:00 app[api]: Build succeeded
2020-01-10T10:35:38.654704+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=flaskapp-te.herokuapp.com request_id=6712472d-a734-4720-b152-1e2716844c41 fwd="137.97.4.98" dyno= connect= service= status=503 bytes= protocol=https
2020-01-10T10:35:39.689766+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=flaskapp-te.herokuapp.com request_id=89a26803-5b09-4a94-99a2-5b0d154d7797 fwd="137.97.4.98" dyno= connect= service= status=503 bytes= protocol=https

我关注了一些博客,但无法解决。请协助

ecfsfe2w

ecfsfe2w1#

修改了下面post中提到的Procfile,以

web: gunicorn --bind 0.0.0.0:$PORT flaskapp:app
lx0bsm1f

lx0bsm1f2#

1年零2个月后。正如其他人所指出的,Procfile中存在一个问题。我个人认为不需要--bind 0.0.0.0:$PORT,因为我的应用程序在没有这部分代码的情况下运行良好--但我不假装知道它的用途是什么。对于这个特定的问题,Procfile中的空间是问题所在,我发现this tutorial在解决我自己的Procfile问题时很有帮助。
然而,我想为那些发现这一点,同时知道他们的过程文件不是问题,但仍然得到h10错误的人添加以下内容。
对于那些专门针对h10错误发现此错误并且您知道Procfile是正确的人,确保你正在阅读完整的日志。我发现在混乱中隐藏着一些行,说明某些模块没有找到。显然我的pip安装不完整或不在我的虚拟env文件夹中。而且不是所有丢失的安装都会显示出来。每一次推送都可能会出现新的模块,需要安装并添加到您的requirementsidertxt文件中。花了几次推送才解决了每一个缺失的项目,最终我的应用程序开始在Heroku上正确运行。

x4shl7ld

x4shl7ld3#

我的项目结构
x1c 0d1x创建名为Procfile的文件(不需要扩展名)-在其中写入以下行web: gunicorn main:app,其中“main”是其中提到app = create_app()的文件名
pip install gunicorn
pip freeze > requirements.txt
再创建一个名为runtime.txt的文件,其中包含以下行python-3.9.2(提供项目的相应python版本)
Heroku零件:使用
gitbash
vscode控制台逐个运行以下命令
heroku login
git init
git add .
git commit -am "Initial Commit"
git push heroku main

qlfbtfca

qlfbtfca4#

你的procfile里有一个bug。

web: gunicorn

它应该这样写。不要给予一个空格后的网页,它会工作正常。

kqlmhetl

kqlmhetl5#

我得到了同样的错误,相比之下,上次你可能已经在pip中安装了一些新的包,并将它们导入到你的app.py文件中。只需重新生成你的requirements.txt文件,并再次将其推送到heroku master,它就会运行得很好
1〉打开终端
2〉类型-cd YOUR_PROJECT_DIRECTORY
3〉类型-pip freeze > requirements.txt
4〉将您的代码推送到您的存储库中。
5〉git推heroku大师

7uzetpgm

7uzetpgm6#

请确保gunicorn包含在requirements.txt文件中。

zfciruhq

zfciruhq7#

在proc文件web中:gunicorn --bind 0.0.0.0:$PORT应用程序:应用程序如果name== 'main',请在应用程序中确认:(app.run调试=真)

qnakjoqk

qnakjoqk8#

除了以上解决方案,我发现我的设置还有一个问题。确保您的requirementsidertxt文件包含您需要的所有内容。
当你打开你的heroku应用程序页面,寻找heroku日志(在终端中键入heroku logs --tail),如果它显示错误H10等待几分钟,不要关闭你的终端(如果你正在终端中寻找日志)。
几分钟后,它显示某些其他错误,在我的情况下,它显示opencv的导入错误。我没有在我的需求页面中有opencv-python,而是在requirements.txt文件中将其更改为opencv-contrib-python-headless(参考this page
简而言之,确保requirements.txt是正确的,特别是在使用像opencv这样的包时

相关问题