2015-10-27 3 views
15

Я использую gunicorn --workers 3 wsgi для запуска моего приложения «Ключ». Если я изменю переменную application на myapp, Gunicorn выдает ошибку AppImportError: Failed to find application: 'wsgi'. Почему я получаю эту ошибку и как ее исправить?Gunicorn не может найти приложение, когда имя изменено с «приложения»

myproject.py:

from flask import Flask 

myapp = Flask(__name__) 

@myapp.route("/") 
def hello(): 
    return 'Test!' 

if __name__ == "__main__": 
    myapp.run(host='0.0.0.0') 

wsgi.py:

from myproject import myapp 

if __name__ == "__main__": 
    myapp.run() 

ответ

32

Gunicorn (и большинство серверов WSGI) по умолчанию ищет вызываемая имени applicationapp или в любой модуль, который вы указываете в. Просто добавив псевдоним from myproject import myapp as application или application = myapp, Gunicorn снова обнаружит вызываемый.

Однако файл wsgi.py или псевдоним не нужны, Gunicorn может быть направлен непосредственно на реальный модуль и может быть вызван. Почти нет веской причины иметь отдельный файл wsgi.py.

gunicorn myproject:myapp --workers 16 
+4

Могут быть причины, но ни один из них не применяет образец, предоставленный в вопросе. Простота настройки конфигурации для производства против dev - одна. –

Смежные вопросы