【问题标题】:Python Flask heroku application errorPython Flask heroku 应用程序错误
【发布时间】:2023-03-09 04:04:01
【问题描述】:

所以我确实有一个烧瓶应用程序,我可以在本地计算机上运行它并成功将其部署到 heroku,但是当我这样做时 heroku open 网站一直说应用程序错误。

这是在我的 app.py 中:

import random
import os

from flask import Flask
from gen_histogram import histogram
from sample import generate_probability, generate_word

app = Flask(__name__)

dict_histogram = histogram('tom_sawyer.txt')

tes_list = ["one", "fish", "two", "fish", "red", "fish", "blue", "fish"]


def try_random():
   return random.choice(tes_list)


@app.route('/')
def hello_world():
   return try_random()


if __name__ == '__main__':
   port = int(os.environ.get("PORT", 5000))
   app.run(debug=True, port=port)

过程文件:

web: gunicorn app:app

注意事项:

我已经完成了所有设置,包括 virtualenv 和 requirements.txt

【问题讨论】:

  • 你得到的错误是什么?
  • 日志是怎么说的?
  • @DanielRoseman -----> Python 应用检测到 $ pip install -r requirements.txt -----> 发现进程类型 Procfile 声明类型 -> web -----> 压缩。 .. 完成:38.2M -----> 正在启动...已发布 v7 tweetkaka.herokuapp.com 部署到 Heroku
  • @AdemÖztaş 终端中基本上没有错误输出,但是当我访问该站点时,它一直说应用程序错误,“您的应用程序无法提供服务”
  • 你看日志了吗?你可以像这样检查heroku logs -t

标签: python python-2.7 heroku flask


【解决方案1】:

我认为一个可能的可能性是那个 gunicorn 没有使用正确的端口。 Heroku 为应用程序分配一个端口。我不完全确定该端口是随机分配的还是有默认值的。但如果这是导致问题的原因,将 Procfile 更改为此应该可以解决它:

web: gunicorn -b :$PORT app:app

这种方式可以捕获 Heroku 所做的任何端口分配。或者,如果您选择为PORT 设置环境变量,它也会使用它。 gunicorn 默认使用端口 8000,因此在 Heroku 上将 PORT 环境变量设置为 8000 也应该可以。

我很确定app.run 不会以任何方式影响 gunicorn 服务器。我认为gunicorn只是在app:appmodule:appinstance)指定的模块中找到应用程序实例,并加载视图。

【讨论】:

    【解决方案2】:

    我在我的根文件夹中创建了一个名为 Procfile 的文件,其中包含

    web: gunicorn -b :$PORT app:app
    

    我是我的app.py,我有

    import os
    ...
    port = int(os.environ.get('PORT', 5000))
    ...
    app.run(host='0.0.0.0', port=port, debug=True)
    

    Heroku dyno 将设置它自己的 PORT 环境,应用程序将使用它而不是我在本地使用的默认 5000。

    https://github.com/Sean-Bradley/Seans-Python3-Flask-Rest-Boilerplate 的工作示例

    【讨论】:

      猜你喜欢
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2020-07-31
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多