Python 古尼康罐头盒';当名称从“更改为”时,找不到应用程序;申请书;
我使用Python 古尼康罐头盒';当名称从“更改为”时,找不到应用程序;申请书;,python,flask,gunicorn,Python,Flask,Gunicorn,我使用gunicorn--workers 3 wsgi运行我的Flask应用程序。如果我将变量application更改为myapp,Gunicorn会给出错误AppImportError:找不到应用程序:“wsgi”。为什么会出现此错误?如何修复 myproject.py: from flask import Flask myapp = Flask(__name__) @myapp.route("/") def hello(): return 'Test!' if __name_
gunicorn--workers 3 wsgi
运行我的Flask应用程序。如果我将变量application
更改为myapp
,Gunicorn会给出错误AppImportError:找不到应用程序:“wsgi”
。为什么会出现此错误?如何修复
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')
from myproject import myapp
if __name__ == "__main__":
myapp.run()
wsgi.py
:
from flask import Flask
myapp = Flask(__name__)
@myapp.route("/")
def hello():
return 'Test!'
if __name__ == "__main__":
myapp.run(host='0.0.0.0')
from myproject import myapp
if __name__ == "__main__":
myapp.run()
Gunicorn(和大多数WSGI服务器)默认在您指向的任何模块中查找名为的可调用应用程序。从myproject中添加别名将myapp作为应用程序导入
或application=myapp
将使Gunicorn再次发现可调用的别名
但是,不需要wsgi.py文件或别名,Gunicorn可以直接指向实际模块并可调用
gunicorn myproject:myapp——工人16
#相当于“从myproject导入myapp作为应用程序”
Gunicorn还可以调用应用程序工厂(可选地使用参数),以获取应用程序对象。(这在Gunicorn 20中暂时不起作用,但在20.0.1中起作用。)
gunicorn'myproject.app:create_app(“生产”)——工人16
#相当于:
#从myproject.app导入创建应用程序
#应用程序=创建应用程序(“生产”)
对于不支持调用工厂的WSGI服务器,或者对于其他更复杂的导入,需要使用
WSGI.py
文件进行设置
从myproject.app导入创建应用
应用程序=创建应用程序(“生产”)
gunicorn wsgi:app--workers 16
如果您试图在server/cats.py
中为变量名为app
的应用程序提供服务,您可以在端口8000上启动服务器,如下所示:
gunicorn server.cats:app -b 0.0.0.0:8000