【问题标题】:Resty Resolver issue PythonResty解析器问题Python
【发布时间】:2019-05-09 15:02:30
【问题描述】:

我正在学习一个教程:https://medium.com/@ssola/building-microservices-with-python-part-i-5240a8dcc2fb

from connexion.resolver import RestyResolver
import connexion

items = {
    0: {"name": "First item"}
}


def search():
    return items

if __name__ == '__main__':
    app = connexion.App(__name__, 9090, specification_dir='swagger/')
    app.add_api('my_super_app.yaml', resolver=RestyResolver('api'))
    app.run()

我一直收到同样的错误:ImportError: No module named items 有人知道如何解决这个错误吗?我 pip 安装了所有依赖项

这里是 api.itmes

items = {
    0: {"name": "First item"}
}


def search() -> list:
    return items

这里是 my_super_app.yaml

swagger: "2.0"

info:
  title: "My first API"
  version: "1.0"

basePath: /v1.0

paths:
  /items/:
    get:
      responses:
        '200':
          description: 'Fetch a list of items'
          schema:
            type: array
            items:
              $ref: '#/definitions/Item'

definitions:
  Item:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name: { type: string }

产生的错误:

No handlers could be found for logger "connexion.options"
Traceback (most recent call last):
  File "/Users/rabiaasif/Documents/GitHub/MibsBackEnd/marble-project/marbles/flask/bff.py", line 15, in <module>
    app.add_api('my_super_app.yaml', resolver=RestyResolver('api'))
  File "/Library/Python/2.7/site-packages/connexion/apps/flask_app.py", line 54, in add_api
    api = super(FlaskApp, self).add_api(specification, **kwargs)
  File "/Library/Python/2.7/site-packages/connexion/apps/abstract.py", line 155, in add_api
    options=api_options.as_dict())
  File "/Library/Python/2.7/site-packages/connexion/apis/abstract.py", line 107, in __init__
    self.add_paths()
  File "/Library/Python/2.7/site-packages/connexion/apis/abstract.py", line 212, in add_paths
    self._handle_add_operation_error(path, method, err.exc_info)
  File "/Library/Python/2.7/site-packages/connexion/apis/abstract.py", line 226, in _handle_add_operation_error
    six.reraise(*exc_info)
  File "/Library/Python/2.7/site-packages/connexion/resolver.py", line 64, in resolve_function_from_operation_id
    return self.function_resolver(operation_id)
  File "/Library/Python/2.7/site-packages/connexion/utils.py", line 99, in get_function_from_name
    raise last_import_error
ImportError: No module named items

【问题讨论】:

  • 您是否尝试过导入模块? import api
  • 请显示完整的回溯。 @Eqomatic 如果有任何模块仅称为 api,我会感到惊讶
  • @roganjosh 我也很惊讶。 pypi.org/project/api
  • 教程中有一个 api.items,有一些名为 api.items 的文件...我认为它指的是我只是不确定如何解决这个错误教程不是很具体

标签: python django flask microservices connexion


【解决方案1】:

在你的 virtualenv 中,执行; pip install connexion[swagger-ui]

以上将修复您的错误,No handlers could be found for logger "connexion.options" 在您产生的错误顶部。

我遇到了类似的问题。在我安装了一些额外的连接后(以上),它解决了我遇到的其他错误。

我在bitshares-explorer-api的自述文件中找到了这个

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 2013-08-20
    • 2015-10-29
    • 2011-09-05
    • 2011-11-02
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    相关资源
    最近更新 更多