2016-04-05 16 views
2

私はSwagger Editorを使用してSwagger仕様ファイルを手動で生成し、Python Flaskサーバのファイルを生成しました。 READMEに続いて私はconnexionをインストールしましたが、python app.pyを実行するとエラーが発生します。 ValueError:アンパックするには2つ以上の値が必要です。何か案は?以下SwaggerエディタからSwaggerサーバ(Python Flask)を生成する際のエラー

のフルスタックトレースは:

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 
+1

追跡のためにhttps://github.com/swagger-api/swagger-codegen/issuesからチケットを開封してください。 –

答えて

4

私もこれに走りました。私が見るところでは、Swaggerの生成コードはPython 3を使用していると思われます.ConnectionはPython 2.7 & 3.4+をサポートしていますが、ベースディレクトリの__init__.pyファイルと、controllers/サブディレクトリPython 2.7のための仕事(Implicit Namespace PackagesはPython 3.3で導入されました)。コードを生成した後に2つの空のファイルを作成すると、うまくいくはずです。スワッガージェネレータがPython 2.7をサポートしたいのであれば(connexionはそれを許しているので)、それらのファイルも提供する必要があります。

+0

これでこの問題は解決しましたが、他の問題が発生しました: def some_function(p1、p2) - > str:default_controller.pyの構文が無効です。 @letsgoblueこれはPython 2.7で動作しますか? – tw1742

+1

@ tw1742:ああ、変更されました。タイプヒントはPython 3.5以降では新しいので、Python 2.7との互換性を得るには、そのファイルの ' - > str'と同様の部分を削除するだけです。 。 – letsgoblue

+0

現在、アプリは実行中ですが、内容は表示されず、404が返されます。 – tw1742

関連する問題