2

最近、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をインストールしたため、これがどのように当てはまるかわかりません。

洞察や方向性は大歓迎です!

4

1 に答える 1

0

私はこの問題に気づき、PyPi で Python 3 互換バージョンを公開しました。その理由は、pydot/pydot2 が Python 3 で既に削除されている機能を使用しているためです。

Python 3.x 用の Linux システムの場合は、次を試してください。

pip3 install pydot3

または、一般的に Python 2.x の場合は、次を試してください。

pip install pydot3

于 2016-01-25T05:32:43.527 に答える