簡體   English   中英

Python,燒瓶,Gunicorn錯誤:無法識別的參數

[英]Python, Flask, Gunicorn Error: Unrecognized Arguments

我正在使用Python和Flask運行應用程序app.py 我正在嘗試將其部署到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)

我之前已經在Heroku上成功部署了應用程序,但從未遇到此錯誤。 我的Procfile僅是一行: web: gunicorn app:app

誰能告訴我該如何解決?

更新 :修改了我的一些代碼,現在當我在heroku local運行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

但是,在部署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

有人知道發生了什么嗎?

我設法解決了我的問題,並提出了@euxneks的建議,以及一些有關Google OAuth 2.0的建議。

本質上,我一直在使用的教程Google日歷API的Python快速入門 ,正在使用argparse獲取憑證標志。 但是,它還調用了不推薦使用的tools.run 因此,我決定遵循一種最新的教程 ,該教程將帶您逐步了解如何將OAuth 2.0與Python Web App結合使用。

遵循本教程時,我遇到了同樣的問題。 我刪除了示例中顯示的--log-file標志。 另外,我還修改了字符串,以便它引用我的應用程序目錄[/app/wsgi.py]下的wsgi.py應用程序,如下所示:

web: gunicorn app.wsgi

希望這可以幫助!

問題是在我的腳本中有argparse,該文件由flask / gunicorn運行。 將它們放在一個:

if __name__ == "__main__":
    import argparse
    ...

這樣,如果直接運行它,您仍然可以解析獨立運行它的參數。

我可以通過將應用程序中的args = parser.parse_args()替換為args( unknown = parser.parse_known_args())來解決此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM