无法使用侍应生服务器在Heroku上部署Python Flask Web应用程序

问题描述

我正在尝试在Heroku PaaS Cloud Service上部署我的Flask应用程序。但是,它可以在localhost上正常运行,没有错误。我正在使用git进行版本控制,并推送到Heroku。最初,作为Web服务器,我使用了'gunicorn',但后来才知道它对UNIX发行版很有用。因此,我将自己的Web服务器诉诸为“女服务员”。我看到了一些帖子,并尝试了Procfile中的所有内容以托管到Heroku。我的Procfile读为:web: waitress-serve --port=$PORT app:app。我还知道,此行中的第一个app是程序包,第二个app是实例所知的名称。我什至从app更改为myappwebsite,并且所有提到的软件包都在我的VS代码编辑器中。但是我的应用程序尚未部署到Heroku上,并显示应用程序错误。现在,当我使用heroku logs --tail检查日志时,出现以下错误,如屏幕截图所示。任何帮助都是非常义务的。我正在尝试23个小时。 Heroku Logs

解决方法

Procfile看起来正确,但是问题可能是文件(app.py)和变量(app)具有相同的名称。

我建议在app.py

中采用以下方法
# define Flask app
def create_app():
  try:

    web_app = Flask(__name__)

    logging.info('Starting up..')

    return web_app

  except Exception as e:
    logging.exception(e)

# retrieve port
def get_port():
  return int(os.environ.get("PORT",5000))

# start Flask app
if __name__ == '__main__':
  web_app = create_app()

  web_app.run(debug=False,port=get_port(),host='0.0.0.0')

可以使用以下命令从Procfile中启动应用程序

web: waitress-serve --port=$PORT --call 'app:create_app'

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...