簡體   English   中英

Gunicorn無法加載Flask應用程序

[英]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.

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