在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
我关注了一些博客,但无法解决。请协助
8条答案
按热度按时间ecfsfe2w1#
修改了下面post中提到的Procfile,以
lx0bsm1f2#
1年零2个月后。正如其他人所指出的,Procfile中存在一个问题。我个人认为不需要
--bind 0.0.0.0:$PORT
,因为我的应用程序在没有这部分代码的情况下运行良好--但我不假装知道它的用途是什么。对于这个特定的问题,Procfile中的空间是问题所在,我发现this tutorial在解决我自己的Procfile问题时很有帮助。然而,我想为那些发现这一点,同时知道他们的过程文件不是问题,但仍然得到h10错误的人添加以下内容。
对于那些专门针对h10错误发现此错误并且您知道Procfile是正确的人,确保你正在阅读完整的日志。我发现在混乱中隐藏着一些行,说明某些模块没有找到。显然我的pip安装不完整或不在我的虚拟env文件夹中。而且不是所有丢失的安装都会显示出来。每一次推送都可能会出现新的模块,需要安装并添加到您的requirementsidertxt文件中。花了几次推送才解决了每一个缺失的项目,最终我的应用程序开始在Heroku上正确运行。
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
个qlfbtfca4#
你的
procfile
里有一个bug。它应该这样写。不要给予一个空格后的网页,它会工作正常。
kqlmhetl5#
我得到了同样的错误,相比之下,上次你可能已经在pip中安装了一些新的包,并将它们导入到你的app.py文件中。只需重新生成你的requirements.txt文件,并再次将其推送到heroku master,它就会运行得很好
1〉打开终端
2〉类型-
cd YOUR_PROJECT_DIRECTORY
3〉类型-
pip freeze > requirements.txt
4〉将您的代码推送到您的存储库中。
5〉git推heroku大师
7uzetpgm6#
请确保gunicorn包含在requirements.txt文件中。
zfciruhq7#
在proc文件web中:gunicorn --bind 0.0.0.0:$PORT应用程序:应用程序如果name== 'main',请在应用程序中确认:(app.run调试=真)
qnakjoqk8#
除了以上解决方案,我发现我的设置还有一个问题。确保您的requirementsidertxt文件包含您需要的所有内容。
当你打开你的heroku应用程序页面,寻找heroku日志(在终端中键入
heroku logs --tail
),如果它显示错误H10
等待几分钟,不要关闭你的终端(如果你正在终端中寻找日志)。几分钟后,它显示某些其他错误,在我的情况下,它显示
opencv
的导入错误。我没有在我的需求页面中有opencv-python
,而是在requirements.txt文件中将其更改为opencv-contrib-python-headless
(参考this page)简而言之,确保requirements.txt是正确的,特别是在使用像opencv这样的包时