python - 从 Swagger 编辑器生成 Swagger 服务器(Python Flask)时出错

标签 python flask swagger connexion

我使用 Swagger 编辑器手动生成 Swagger 规范文件并为 Python Flask 服务器生成文件。按照自述文件,我安装了 connexion,但是当我运行 python app.py 时,出现错误: ValueError:需要超过 1 个值才能解压。有什么想法吗?

下面是完整的堆栈跟踪:

No handlers could be found for logger "connexion.api"
Traceback (most recent call last):
  File "app.py", line 5, in <module>
    app.add_api('swagger.yaml')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/app.py", line 144, in add_api
    debug=self.debug)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/api.py", line 127, in __init__
    self.add_paths()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/api.py", line 198, in add_paths
    six.reraise(*sys.exc_info())
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/api.py", line 187, in add_paths
    self.add_operation(method, path, endpoint, path_parameters)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/api.py", line 160, in add_operation
    resolver=self.resolver)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/operation.py", line 168, in __init__
    resolution = resolver.resolve(self)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/resolver.py", line 50, in resolve
    return Resolution(self.resolve_function_from_operation_id(operation_id), operation_id)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/resolver.py", line 71, in resolve_function_from_operation_id
    return self.function_resolver(operation_id)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/connexion/utils.py", line 106, in get_function_from_name
    module_name, attr_path1 = module_name.rsplit('.', 1)
ValueError: need more than 1 value to unpack

最佳答案

我也遇到过这个问题。据我所知,Swagger 生成的代码似乎假设您使用的是 Python 3。虽然 connexion 支持 Python 2.7 和 3.4+,但它确实需要 __init__.py生成的python-flask-server/中的文件基本目录以及 controllers/ 内适用于 Python 2.7 的子目录(隐式命名空间包在 Python 3.3 中引入)。如果您在生成代码后创建这两个空文件,那么一切应该可以正常工作。如果 Swagger 生成器想要支持 Python 2.7(因为 connexion 允许),它也只需要提供这些文件。

关于python - 从 Swagger 编辑器生成 Swagger 服务器(Python Flask)时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416679/

相关文章:

python - 是否可以在 Tensorflow 中输入动态形状矩阵?

python - 使用 python 3.5 用希伯来语和英语解析 json 文件

python - 如何解决 rq 多任务 h12 heroku 超时?

python-3.x - 为每个 Flask GET 请求添加查询参数

python - 无法从父目录加载 Flask 配置

java - swagger-ui.html 400 错误请求

Python:在SQL数据库中插入元组列表并添加自动递增的id字段

python - 在 Django 模型中添加一对多关系

rest - Swagger:禁用特定路径上的安全性

node.js - 如何在reactjs中渲染swagger.json内容