Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Gunicorn TypeError _调用_;()接受1到2个位置参数,但Flask应用程序工厂提供了3个位置参数_Flask_Gunicorn_Python 3.9 - Fatal编程技术网

Gunicorn TypeError _调用_;()接受1到2个位置参数,但Flask应用程序工厂提供了3个位置参数

Gunicorn TypeError _调用_;()接受1到2个位置参数,但Flask应用程序工厂提供了3个位置参数,flask,gunicorn,python-3.9,Flask,Gunicorn,Python 3.9,我已经搜寻了好几天,现在试图找到一个答案,为什么会发生这种情况。我有一个使用应用程序工厂方法的烧瓶应用程序。通过Flask开发服务器,一切都可以正常运行,所以现在我正尝试按照建议使用Gunicorn进行部署。我以前做过这项工作,它似乎可以工作,但这不是使用应用程序工厂方法来实例化我的应用程序。所以我想知道我做错了什么 我尝试了一些我发现的运行gunicorn命令的不同方法的建议,但似乎没有任何效果。工人们开始的时候很好,但是只要我通过google向我的任何一个端点执行请求(主要是呈现初始页面的简

我已经搜寻了好几天,现在试图找到一个答案,为什么会发生这种情况。我有一个使用应用程序工厂方法的烧瓶应用程序。通过Flask开发服务器,一切都可以正常运行,所以现在我正尝试按照建议使用Gunicorn进行部署。我以前做过这项工作,它似乎可以工作,但这不是使用应用程序工厂方法来实例化我的应用程序。所以我想知道我做错了什么

我尝试了一些我发现的运行
gunicorn
命令的不同方法的建议,但似乎没有任何效果。工人们开始的时候很好,但是只要我通过google向我的任何一个端点执行请求(主要是呈现初始页面的简单GET请求),我就会得到下面的回溯

[2021-04-26 14:37:34-0500][25609][INFO]工人退出(pid:25609)
[2021-04-26 14:37:34-0500][25608][INFO]正在关闭:主机
[2021-04-26 14:37:34-0500][25608][INFO]原因:工作进程无法启动。
(学习炼金术)[aspea002@ilscha03-ioad-01学习烧瓶炼金术]$ls
app.py config.py迁移_pycache _u; README.md requirements.txt学生目录wsgi.py
(学习炼金术)[aspea002@ilscha03-ioad-01学习烧瓶炼金术]$gunicorn“学生目录:创建应用程序()
[2021-04-26 14:38:00-0500][25796][INFO]从gunicorn 20.1.0开始
[2021-04-26 14:38:00-0500][25796][INFO]收听时间:http://127.0.0.1:8000 (25796)
[2021-04-26 14:38:00-0500][25796][INFO]正在使用辅助程序:同步
[2021-04-26 14:38:00-0500][25797][INFO]带pid的引导工作程序:25797
/home/aspea002/miniconda3/envs/learn_flask_sqlalchemy/lib/python3.9/site packages/flask_sqlalchemy/___init__.py:851:UserWarning:未设置sqlalchemy_数据库_URI或sqlalchemy_绑定。将SQLALCHEMY_数据库_URI默认为“sqlite://:内存:”。
警告,警告(
/home/aspea002/miniconda3/envs/learn_flask_sqlalchemy/lib/python3.9/site packages/flask_sqlalchemy/___init__.py:872:fsadepretectionwarning:sqlalchemy_TRACK_修改会增加大量开销,并在将来默认情况下禁用。将其设置为True或False可抑制此警告。
警告。警告(fsadepreactionwarning(
[2021-04-26 14:38:06-0500][25797][ERROR]错误处理请求/
回溯(最近一次呼叫最后一次):
文件“/home/aspea002/miniconda3/envs/learn\u flask\u sqlalchemy/lib/python3.9/site packages/gunicorn/workers/sync.py”,第136行,在handle中
self.handle_请求(侦听器、请求、客户端、地址)
文件“/home/aspea002/miniconda3/envs/learn\u flask\u sqlalchemy/lib/python3.9/site packages/gunicorn/workers/sync.py”,第179行,处理请求
respiter=self.wsgi(环境、响应启动\响应)
TypeError:_调用__()接受1到2个位置参数,但给出了3个
[2021-04-26 14:38:07-0500][25797][ERROR]错误处理请求/favicon.ico
回溯(最近一次呼叫最后一次):
文件“/home/aspea002/miniconda3/envs/learn\u flask\u sqlalchemy/lib/python3.9/site packages/gunicorn/workers/sync.py”,第136行,在handle中
self.handle_请求(侦听器、请求、客户端、地址)
文件“/home/aspea002/miniconda3/envs/learn\u flask\u sqlalchemy/lib/python3.9/site packages/gunicorn/workers/sync.py”,第179行,处理请求
respiter=self.wsgi(环境、响应启动\响应)
TypeError:_调用__()接受1到2个位置参数,但给出了3个
以下是我的目录结构:

\uuuu init\uuuu.py
您看到的文件包含以下内容:

导入操作系统
导入日志记录
导入系统
从烧瓶进口烧瓶
从迁移导入迁移,迁移命令
从restful导入Api
从flask_脚本导入管理器,服务器
从flask_sqlalchemy导入sqlalchemy
#从apscheduler导入apscheduler
#从学生目录导入作业
从student_目录.students.models导入数据库
def create_app():
学生应用程序=烧瓶(姓名)
来自对象(os.environ.get('app\u env')的student\u app.config.from
数据库初始化应用程序(学生应用程序)
经理=经理(学生应用程序)
迁移=迁移(学生应用程序,数据库)
manager.add_命令('db',MigrateCommand)
#调度程序=APScheduler()
#scheduler.init_应用程序(学生_应用程序)
#scheduler.start()
学生应用程序接口=应用程序接口(学生应用程序)
如果sys.argv中的“runserver”:
添加命令('runserver',Server(使用调试程序=student\u app.config.get('DEBUG'),
threaded=student\u app.config.get('threaded'),port=student\u app.config.get('port'),
host=student\u app.config.get('host'),
use\u reloader=student\u app.config.get('use\u reloader'))
使用学生应用程序。应用程序上下文()
进口路线
退货经理
我尝试过一些建议,您可以直接调用
create\u app()
方法:

gunicorn -w 2 "student_directory:create_app()"
我还尝试了
wsgi.py
文件方法,该文件的内容包括:

从学生目录导入创建应用程序
学生应用程序=创建应用程序()
使用gunicorn命令
gunicorn-w 2 wsgi:student\u app

但是无论我做什么,每个请求都会在
gunicorn
sync.py
文件中遇到这个异常,我不知道为什么

任何建议都是很好的,因为在这一点上,我假设它与我正在做的事情有关,或者我需要对最新版本的
gunicorn
做一些不同的事情。我以前使用过它,就像大约一年前所说的那样,它工作得很好,所以我不确定根据gunicorn的发布,到底是什么发生了如此巨大的变化es更新