fro*_*dit 8 python heroku flask gunicorn procfile
我正在app.py使用 Python 和 Flask运行我的应用程序。我正在尝试将它部署到 Heroku,并按照本教程中的步骤进行操作,包括制作 Procfile 和 requirements.txt。但是,每当我运行时heroku local,都会出现以下错误:
web.1 | [2015-09-26 17:36:32 -0400] [19422] [INFO] Starting gunicorn 19.3.0
web.1 | [2015-09-26 17:36:32 -0400] [19422] [INFO] Listening at: http://0.0.0.0:5000 (19422)
web.1 | [2015-09-26 17:36:32 -0400] [19422] [INFO] Using worker: sync
web.1 | [2015-09-26 17:36:32 -0400] [19425] [INFO] Booting worker with pid: 19425
web.1 | usage: gunicorn [-h] [--auth_host_name AUTH_HOST_NAME]
web.1 | gunicorn: error: unrecognized arguments: app:app
web.1 | [2015-09-26 17:36:32 -0400] [19425] [INFO] Worker exiting (pid: 19425)
Run Code Online (Sandbox Code Playgroud)
我以前在 Heroku 上成功部署过应用程序,但从未出现过此错误。我的 Procfile 只是一行:web: gunicorn app:app.
谁能告诉我如何解决这个问题?
更新:修改了我的一些代码,现在当我运行时heroku local,它运行良好:
web.1 | [2015-09-28 18:52:13 -0400] [70650] [INFO] Starting gunicorn 19.3.0
web.1 | [2015-09-28 18:52:13 -0400] [70650] [INFO] Listening at: http://0.0.0.0:5000 (70650)
web.1 | [2015-09-28 18:52:13 -0400] [70650] [INFO] Using worker: sync
web.1 | [2015-09-28 18:52:13 -0400] [70653] [INFO] Booting worker with pid: 70653
Run Code Online (Sandbox Code Playgroud)
但是,当我部署 Heroku 应用程序时,我收到一个应用程序错误,当我检查日志时,我看到与以前相同的错误:
2015-09-28T22:50:54.775077+00:00 app[web.1]: 2015-09-28 22:50:54 [3] [INFO] Starting gunicorn 18.0
2015-09-28T22:50:54.776176+00:00 app[web.1]: 2015-09-28 22:50:54 [3] [INFO] Using worker: sync
2015-09-28T22:50:54.776052+00:00 app[web.1]: 2015-09-28 22:50:54 [3] [INFO] Listening at: http://0.0.0.0:24995 (3)
2015-09-28T22:50:54.786067+00:00 app[web.1]: 2015-09-28 22:50:54 [9] [INFO] Booting worker with pid: 9
2015-09-28T22:50:56.004336+00:00 heroku[web.1]: State changed from starting to up
2015-09-28T22:51:42.659042+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=bobawithjames.herokuapp.com request_id=1afab4c0-484e-456b-be05-3086ee0711cd fwd="160.39.250.29" dyno=web.1 connect=1ms service=39ms status=503 bytes=0
2015-09-28T22:51:42.604331+00:00 app[web.1]: [--noauth_local_webserver]
2015-09-28T22:51:42.604323+00:00 app[web.1]: usage: gunicorn [-h] [--auth_host_name AUTH_HOST_NAME]
2015-09-28T22:51:42.604335+00:00 app[web.1]: [--auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT ...]]]
2015-09-28T22:51:42.633611+00:00 app[web.1]: gunicorn: error: unrecognized arguments: hello:app
Run Code Online (Sandbox Code Playgroud)
有人知道现在是怎么回事吗?
问题在于我的脚本中包含 argparse,该脚本由 Flask/gunicorn 运行。将它们放入:
if __name__ == "__main__":
import argparse
...
Run Code Online (Sandbox Code Playgroud)
这样,如果直接运行它,您仍然可以解析独立运行它的参数。
我设法解决了我的问题,根据 @euxneks 提出的建议,以及对 Google OAuth 2.0 的一些修改。
本质上,我一直在使用的教程Google Calendar API 的 Python Quickstart是用来argparse获取凭据标志的。然而,它也调用了tools.run,但已被弃用。因此,我决定遵循一个不同的、更新的教程,该教程将引导您通过 Python Web 应用程序使用 OAuth 2.0。
| 归档时间: |
|
| 查看次数: |
11537 次 |
| 最近记录: |