所以我经过这么多试验后终于在heroku上部署了我的python应用程序,现在,该应用程序无法运行。它在日志中返回错误,代码为" H10"和状态503。
我的app.py只是
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello world"
if __name__ = '__main__':
app.run(debug = True)
我的要求.txt
AppInst==2.1.5
Flask==0.12.2
Jinja2==2.9.6
MarkupSafe==1.0
Pillow==4.0.0
PyYAML==3.11
Pygments==2.1.3
Werkzeug==0.12.2
appdirs==1.4.3
apptools==4.4.0
argparse==1.4.0
attrs==15.2.0
backports-abc==0.5
backports.shutil-get-terminal-size==1.0.0
beautifulsoup4==4.4.1
bleach==1.5.0
boto==2.40.0
certifi==2017.4.17
chardet==3.0.3
click==6.7
colorama==0.3.9
colorthief==0.2.1
configobj==5.0.6
configparser==3.5.0
cycler==0.10.0
decorator==4.0.9
dlib==19.4.0
docutils==0.13.1
ecdsa==0.13
encore==0.7.0
enstaller==4.8.12
entrypoints==0.2.2
enum34==1.1.6
envisage==4.6.0
esky==0.9.8
feedparser==5.2.1
flake8==3.3.0
futures==3.0.3
gnureadline==6.3.3
gunicorn==19.7.1
hatcher==0.10.4
html5lib==0.999
humanize==0.5.1
idna==2.5
imutils==0.4.3
ipykernel==4.5.2
ipython==4.0.0
ipython-genutils==0.1.0
ipywidgets==6.0.0
itsdangerous==0.24
jedi==0.10.2
jsonify==0.5
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.0.0
jupyter-console==5.1.0
jupyter-core==4.3.0
keyring==10.3.3
lxml==3.8.0
matplotlib==2.0.2
mccabe==0.6.1
memory-profiler==0.43
mistune==0.7.4
mpmath==0.19
nbconvert==5.2.1
nbformat==4.3.0
nose==1.3.7
notebook==4.4.1
numpy==1.12.1
okonomiyaki==0.16.10
olefile==0.44
opencv-python==3.2.0.7
packaging==16.8
pandas==0.20.2
pandocfilters==1.4.1
path.py==10.3.1
pathlib2==2.2.1
pbr==3.0.1
pep8==1.7.0
pexpect==4.2.1
pickleshare==0.7.4
pip==9.0.1
plotly==2.0.9
ply==3.10
prompt-toolkit==1.0.13
psutil==5.2.2
psycopg2==2.7.1
ptyprocess==0.5.1
pyasn1==0.2.3
pycodestyle==2.3.1
pycrypto==2.6.1
pyface==5.1.0
pyflakes==1.5.0
pyglet==1.1.4
pymongo==3.4.0
pyparsing==2.2.0
python-dateutil==2.6.0
pytz==2017.2
pyzmq==16.0.2
qtconsole==4.3.0
requests==2.17.3
rsa==3.4.2
scipy==0.19.0
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.10.0
stevedore==1.23.0
sympy==1.0
tabulate==0.7.7
terminado==0.6
testpath==0.3.1
tornado==4.5.1
traitlets==4.3.2
traits==4.6.0
traits-enaml==0.2.1
traitsui==5.1.0
tzlocal==1.4
urllib3==1.21.1
virtualenv==15.1.0
wcwidth==0.1.7
cmake==0.7.1
我的proc文件
web: gunicorn malicha:app --log-file=-
构建包
https://github.com/J-A-M-E-5/heroku14-buildpack-python-opencv-dlib.git
答案 0 :(得分:1)
我遇到了同样的问题,有两件事帮助了我。正如评论所说,Procfile(帮助您启动应用程序的东西)必须与您实际尝试启动的内容相匹配。
这就是你可能会说的:web gunicorn main:app runserver 0.0.0.0:$PORT --log-file=-
这就是所有事情的点滴之处:
第一个单词是您要求的过程类型,在这种情况下为“网络”。那里也可能说“ worker”,但我想您只有一个dyno,并且它是一个免费帐户,这意味着您想要的是。您以后可以随时添加复杂性。
绿色的独角兽旁边。
“ gunicorn”是处理Web请求的一种更有效的方法。您也可以在其中安装“ python”……但这是推荐的方法。
接下来是您遇到麻烦的地方。 “ main:app”或“ malicha:app” ...看起来很奇怪,对吧?这是哪里来的。
查看目录结构(即文件)。如果您要运行的东西称为
如果您要运行的东西称为
下一个很明显。
之后是端口。您可以像这样从Flask应用程序内部获取它:
if __name__ == "__main__":
# get port number from Heroku
port = int(os.getenv("PORT"))
app.run(host='0.0.0.0', port=port, debug=True)
但是您不需要更改Procfile超出我所写的内容。
最后是日志。也很明显。
您也不需要Requirements.txt中的所有内容,但这是一个严重的问题,我们可以将其保存另一天。
希望有帮助。