我最近纔開始在運行Yosemite的我的mac上使用Python 3.5,並且我試圖使用模塊networkx編譯並生成一些圖形/網絡視覺效果楷模。我沒有太多的編程經驗,所以如果我遺漏任何細節,我很抱歉。試圖安裝pydot以與Python 3.5中的networkx一起使用
我已經成功安裝了networkx(能夠使用命令),但我目前正在努力安裝其中一個可選模塊,這些模塊有助於生成幾代圖形: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不兼容。但是,我不明白這是怎麼回事,因爲我安裝了PyDot2,它明確表示它與Python 3+兼容。
任何見解或方向將不勝感激!