'module'对象没有属性'Dot'

时间:2016-01-27 09:32:59

标签: python networkx pydot

我是python的初学者,我正在尝试使用:

绘制图形
`nx.write_dot(G, "%s.dot"%(image))`

在定义的函数中。当我执行该程序时,我收到此错误:

文件“sim.py”,第31行,in     main()的

文件“sim.py”,第30行,在main中     sol.run()

文件“C:\ Python27 \ My sim \ Solution.py”,第221行,在运行中     self.drawGraph(G,“solution1”)

文件“C:\ Python27 \ My sim \ Solution.py”,第227行,在drawGraph中     nx.write_dot(G,“%s.dot”%(image))

文件“”,第2行,在write_dot

文件“C:\ Python27 \ lib \ site-packages \ networkx \ utils \ decorators.py”,第220行,在_open_file中

result = func(* new_args,** kwargs)

文件“C:\ Python27 \ lib \ site-packages \ networkx \ drawing \ nx_pydot.py”,第58行,在write_dot中

P = to_pydot(G)

文件“C:\ Python27 \ lib \ site-packages \ networkx \ drawing \ nx_pydot.py”,第197行,在to_pydot

P = pydot.Dot(graph_type = graph_type,strict = strict,** graph_defaults) AttributeError:'module'对象没有属性'Dot'

这似乎是一个Windows操作系统问题(我在win7上),因为我的同事可以在他的ubuntu机器上运行相同的脚本而没有任何错误。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你正在做教程绘制图表吧?

这里是如何运作的:

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,它们是免费的。