Restplus API 应用程序对象不可调用?

Restplus API Application object is not callable?

我正在尝试使用 unicorn 运行 一个 Restplus 烧瓶 API,但我一直收到此错误:

Application object must be callable.

我将 sqlalchemy 用于数据库连接和模型。这是我的 apy.py 主文件:

from apis import api
from database import db
import os

application = Flask(__name__)
application.config.from_object('config.DevelopmentConfig')

application.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(application)

api.init_app(application)

if __name__ == '__main__':
 application.run(debug=True)

我就是这样定义文件夹的 init.py 的,这样我就可以将它们组织起来:

from flask_restplus import Api

from .status import api as status
from .cats import api as cats

api = Api(
    title='TEST API',
    version='1.0',
    description='A description',
)

api.add_namespace(status)
api.add_namespace(cats)

我正在使用码头工人,这就是我 运行 gunicorn:

CMD ["gunicorn", "-b", "0.0.0.0:9000", "api:api"]

在主机中我得到同样的错误。仅使用 python 运行代码就可以正常工作。我需要 wsig 文件吗?如果有,我该如何定义?

更新:

我尝试 运行使用女服务员在 Windows 10 上连接它,当我尝试连接它时我得到了这个错误:

Serving on http://MR:9000
ERROR:waitress:Exception while serving /
Traceback (most recent call last):
  File "c:\users\mr\appdata\local\programs\python\python37\lib\site-packages\waitress\channel.py", line 356, in service
    task.service()
  File "c:\users\mr\appdata\local\programs\python\python37\lib\site-packages\waitress\task.py", line 172, in service
    self.execute()
  File "c:\users\mr\appdata\local\programs\python\python37\lib\site-packages\waitress\task.py", line 440, in execute
    app_iter = self.channel.server.application(environ, start_response)
TypeError: 'Api' object is not callable

所以错误是在我尝试连接到它时出现的?

你的错误是在你调用 gunicorn

CMD ["gunicorn", "-b", "0.0.0.0:9000", "api:api"]

您目前要求的 gunicorn 是查看模块 api 并检查其中是否存在名为 api 的可调用对象。更正如下

CMD ["gunicorn", "-b", "0.0.0.0:9000", "apy:application"]

来源:

  1. http://docs.gunicorn.org/en/stable/run.html#gunicorn