Python Flask Web 应用程序无法使用 Waitress 服务器部署到 Heroku 上
Python Flask Web application not able to deploy on Heroku using Waitress server
我正在尝试在 Heroku PaaS 云服务上部署我的 Flask 应用程序。但是,它可以在 localhost 上正常运行,没有任何错误。我正在使用 git 进行版本控制并推送到 Heroku。最初,作为 Web 服务器,我使用 'gunicorn' 但后来才知道它对 UNIX 发行版很有用。所以我将我的网络服务器求助于 'waitress'。我看到了一些帖子并尝试了 Procfile 中的所有内容以托管到 Heroku。我的 Procfile 内容如下:web: waitress-serve --port=$PORT app:app
。据我所知,我还知道这一行中的第一个 app
是包,第二个 app
是实例的名称。我什至从 app
更改为 myapp
、website
,并且我的 VS 代码编辑器中包含所有包,包括提到的包。但是我的应用程序没有部署到 Heroku 上,它给出了 Application Error。现在,当我使用 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'
我正在尝试在 Heroku PaaS 云服务上部署我的 Flask 应用程序。但是,它可以在 localhost 上正常运行,没有任何错误。我正在使用 git 进行版本控制并推送到 Heroku。最初,作为 Web 服务器,我使用 'gunicorn' 但后来才知道它对 UNIX 发行版很有用。所以我将我的网络服务器求助于 'waitress'。我看到了一些帖子并尝试了 Procfile 中的所有内容以托管到 Heroku。我的 Procfile 内容如下:web: waitress-serve --port=$PORT app:app
。据我所知,我还知道这一行中的第一个 app
是包,第二个 app
是实例的名称。我什至从 app
更改为 myapp
、website
,并且我的 VS 代码编辑器中包含所有包,包括提到的包。但是我的应用程序没有部署到 Heroku 上,它给出了 Application Error。现在,当我使用 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'