![](/img/trans.png)
[英]AttributeError: 'module' object has no attribute 'write_dot' for networkx library
[英]'module' object has no attribute 'Dot'
我是 python 的初學者,我正在嘗試使用以下方法繪制圖形:
`nx.write_dot(G, "%s.dot"%(image))`
在定義的函數中。 當我執行程序時,我收到此錯誤:
File "sim.py", line 31, in <module>
main()
File "sim.py", line 30, in main
sol.run()
File "C:\Python27\My sim\Solution.py", line 221, in run
self.drawGraph(G, "solution1")
File "C:\Python27\My sim\Solution.py", line 227, in drawGraph
nx.write_dot(G, "%s.dot"%(image))
File "<decorator-gen-232>", line 2, in write_dot
File "C:\Python27\lib\site-packages\networkx\utils\decorators.py", line 220, in _open_file
result = func(*new_args, **kwargs)
File "C:\Python27\lib\site-packages\networkx\drawing\nx_pydot.py", line 58, in write_dot
P=to_pydot(G)
File "C:\Python27\lib\site-packages\networkx\drawing\nx_pydot.py", line 197, in to_pydot
P = pydot.Dot(graph_type=graph_type,strict=strict,**graph_defaults)
AttributeError: 'module' object has no attribute 'Dot'
似乎是 Windows 操作系統問題(我使用的是 win7),因為我的同事可以在他的 ubuntu 機器上運行相同的腳本而不會出現任何錯誤。
謝謝你的幫助!
你在做教程繪制圖形嗎?
這里是如何工作的:
import networkx as nx
import matplotlib.pyplot as plt
G=nx.Graph()
G.add_edges_from([(1,2),(1,3)])
nx.draw(G)
plt.show()
編輯:如果您沒有安裝 matplotlib,只需打開命令行並輸入:
pip install matplotlib
matplotlib 是可選的,它不附帶 networkx,您必須安裝它。
同樣為了保存.dot文件,只需添加以下行:
nx.write_dot(G,'C:/file.dot')
編輯:沒有matplotlib會像這樣:
import networkx as nx
G=nx.Graph()
G.add_edges_from([(1,2),(1,3)])
nx.draw(G)
nx.write_dot(G,'C:/file.dot')
我注意到在你的代碼nx.write_dot(G, "%s.dot"%(image))
你沒有定義image
和 G,錯誤應該來自其中之一。
但是如果你想安裝 c++ 編譯器,我建議下載Visual C++ Compiler 33mb 或Microsoft Visual Studio community ,它們是免費的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.