2016-10-30 3 views
0

私はJNCとPyangを統合しようとしています。 jncの手順で説明したように、jnc.pyPYANG_HOME/pyang/pluginsにコピーしました。私はpyangとJNCの統合

Traceback (most recent call last): 
    File "D:/tools/pyang-master/bin/pyang", line 434, in <module> 
    run() 
    File "D:/tools/pyang-master/bin/pyang", line 408, in run 
    emit_obj.emit(ctx, modules, fd) 
    File "C:\Users\Siva\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pyang-1.7-py3.5.egg\pyang/plugins\jnc.py", line 208, in emit 
    if module_stmt in (imported + included): 
TypeError: unsupported operand type(s) for +: 'map' and 'map' 

誰でもこの種の問題に直面して、コマンド次のエラーが直面している

pyang -f jnc --jnc-output src/gen/simple yang/simple.yang 

を使用して$JNC_HOME/examples/yangsimple.yangのためのJavaクラスを生成してみてください。この問題を解決する方法を教えてください。

答えて

0

問題マップの実装である:

パイソン2:

>>> type(map(abs, [43, -12, 13, -14])) 
<type 'list'> 

のPython 3:

パイソン2 mapリストを返しながら、Pythonの-3

mapは、イテレータを返します

>>> type(map(abs, [99, -52, 32, -34, 13])) 
<class 'map'> 

fi le jnc.pyに変更し、コードを次のように変更します。

for (module_stmt, rev) in self.ctx.modules: 
    if module_stmt in (imported + included): 
     module_set.add(self.ctx.modules[(module_stmt, rev)]) 


for (module_stmt, rev) in self.ctx.modules: 
    if module_stmt in (included): 
     module_set.add(self.ctx.modules[(module_stmt, rev)]) 
    if module_stmt in (imported): 
     module_set.add(self.ctx.modules[(module_stmt, rev)])