最近、Yosemite を実行している Mac で Python 3.5 の使用を開始しました。モジュール networkx を使用して、グラフィックス/ネットワーク モデルのビジュアルをコンパイルおよび生成しようとしています。私はプログラミングの経験があまりないので、詳細を省略して申し訳ありません。
networkx を正常にインストールしました (そこからコマンドを使用できます) が、現在、プロットの生成を容易にするオプション モジュールの 1 つ、GraphViz のインストールに苦労しています。コマンド プロンプトで setup.py install コマンドを実行して GraphViz をインストールしようとしましたが、GraphViz のインストールには別のモジュール PyDot (より具体的には PyDot2: pydot2-1.0.33-py3.5.egg.info) が必要なようです。PyDot を正しく動作させることができないため、そこに問題があります。PyDot を使用する networkx コマンドを実行すると、次のエラーが発生し続けます (test2.py はテスト グラフィック モデルです)。
Traceback (most recent call last):
File "/Users/mainuser/Downloads/test2.py", line 6, in <module>
nx.draw_graphviz(G)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/networkx/drawing/nx_pylab.py", line 982, in draw_graphviz
pos = nx.drawing.graphviz_layout(G, prog)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/networkx/drawing/nx_pydot.py", line 257, in graphviz_layout
return pydot_layout(G=G,prog=prog,root=root,**kwds)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/networkx/drawing/nx_pydot.py", line 277, in pydot_layout
D=P.create_dot(prog=prog)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pydot.py", line 1802, in <lambda>
lambda f=frmt, prog=self.prog : self.create(format=f, prog=prog))
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pydot.py", line 1966, in create
self.write(tmp_name)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pydot.py", line 1895, in write
dot_fd = file(path, "w+b")
NameError: name 'file' is not defined
いくつかの調査を行って遊んだ後、問題は、インストールした PyDot のバージョンが Python 3.5 と互換性がないことだと感じています。ただし、Python 3+と互換性があることを明示的に示すPyDot2をインストールしたため、これがどのように当てはまるかわかりません。
洞察や方向性は大歓迎です!