[英]Gunicorn failed to load Flask application
我有一個Flask應用程序,我試圖通過Gunicorn服務。
我正在使用virtualenv和python3。 如果我將我的venv cd激活到我的app base dir,那么運行:
gunicorn mysite:app
我明白了:
Starting gunicorn
Listening at http://127.0.0.1:8000
DEBUG:mysite.settings:>>Config()
...
Failed to find application: 'mysite'
Worker exiting
Shutting down: master
Reason: App failed to load
查看/ etc / nginx / sites-available我只有文件'default'。 在已啟用網站的情況下,我沒有文件。
在我的nginx.conf文件中,我有:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
應用結構:
mysite #this is where I cd to and run gunicorn mysite:app
--manage.py
--/mysite
----settings.py
----__init__.py
在manage.py
for mysite我有以下內容:
logger.debug("manage.py entry point")
app = create_app(app_name)
manager = Manager(app)
if __name__ == "__main__":
manager.run()
在__init__.py
文件中:
def create_app(object_name):
app = Flask(__name__)
#more setup here
return app
在app目錄中的settings.py
中
class Config(object):
logger.debug(">>Config()") #this logs OK so gunicorn is at least starting in correct directory
如果我跑的話,從virtualenv內部
print(sys.path)
我找到了這個virtualenv的python和site-packages的路徑。
從我所讀到的開始槍炮它只是安裝它和運行gunicorn mysite:app的問題
從mysite的父目錄運行gunicorn我得到同樣的失敗找到應用程序:'mysite',App無法加載錯誤,但沒有得到DEBUG ... Config()登錄(因為我們顯然在錯誤的目錄中開始)。 從mysite / mysite運行gunicorn(顯然是錯誤的)我在工作進程ereor中得到和Exception,ImportError:沒有名為'mysite'的模塊。
關於我如何獲得槍聲的任何線索?
你指的是mysite:app
gunicorn,這相當於from mysite import app
。 但是, mysite
的頂級( __init__.py
)級導入中沒有app
對象。 告訴gunicorn打電話給工廠。
gunicorn "mysite:create_app()"
您也可以將參數傳遞給調用。
gunicorn "mysite:create_app('production')"
在內部,這相當於:
from mysite import create_app
app = create_app('production')
或者,您可以使用單獨的文件來執行設置。 在您的情況下,您已經在manage.py
初始化了一個app
。
gunicorn manage:app
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.