问题描述
我正在尝试在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
更改为myapp
,website
,并且所有提到的软件包都在我的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'