部署Python 3 App Heroku:崩溃

时间:2017-02-13 04:47:01

标签: python heroku deployment flask

我完成了一个项目(第8周CS50),并希望将其放在网上。它在Cloud9 IDE和本地化Web服务器中工作正常。它" application.py"并使用Flask(由CS50为我配置)。

所以我读了部署,并做了几次在Heroku上部署的尝试。无法让它发挥作用。

错误日志:

  • 2017-02-13T04:48:13.132359 + 00:00 heroku [web.1]:州改变自 坠毁到开始
  • 2017-02-13T04:48:17.100053 + 00:00 heroku [web.1]: 使用命令python application.py
  • 启动流程
  • 2017-02-13T04:48:20.884225 + 00:00 heroku [web.1]:进程已退出 状态0
  • 2017-02-13T04:48:20.902452 + 00:00 heroku [web.1]:状态 从开始变为崩溃
  • 2017-02-13T04:57:31.197394 + 00:00 heroku [router]:at = error code = H10 desc =" App崩溃"方法= GET 路径=" /"主机= goldsteinsentiments.herokuapp.com request_id = e917b69b-7636-40c9-9547-a2df2aaa1f3d fwd =" 50.39.98.15" dyno = connect = service = status = 503 bytes =
  • 2017-02-13T04:57:31.307356 + 00:00 heroku [router]:at = error code = H10 desc =" App崩溃" method = GET path =" /favicon.ico" 主机= goldsteinsentiments.herokuapp.com request_id = 096751c7-5cd0-4ba2-8705-6bf61578d516 fwd =" 50.39.98.15" dyno = connect = service = status = 503 bytes =

Procfile(从stackoverflow复制一个): " web:python application.py"

主要application.py: https://github.com/jamesdylangoldstein/sentiments/blob/master/application.py

所有文件: https://github.com/jamesdylangoldstein/sentiments

2 个答案:

答案 0 :(得分:1)

部署步骤:

1)Procfile包含: web: gunicorn application:app

2)在requirements.txt类型中:     gunicorn

答案 1 :(得分:0)

根据您在GitHub上发布的代码,我建议进行一些更改以克服此错误:

  1. 在python程序的末尾添加以下内容:

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

    确保已定义应用(似乎在您的情况下),并且未在.run()方法中指定 port 参数。如果事先定义端口号,Heroku将崩溃。

  2. 确保在 requirements.txt 中指定了所有依赖项。确保正确定义了@James Goldstein定义的Procfile和要求。

  3. 某些Web服务器,例如Azure,默认情况下要求将python应用程序命名为 app.py 。我不知道Heroku是否会遇到这种情况,但是对于某些服务器,这可能是个问题。