Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 古尼康罐头盒';当名称从“更改为”时,找不到应用程序;申请书;_Python_Flask_Gunicorn - Fatal编程技术网

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