AttributeError:module' pydot'没有属性' graph_from_dot_data'在spyder

时间:2016-02-09 06:14:15

标签: python pydot

我正在尝试运行以下代码:

from sklearn.datasets import load_iris
from sklearn import tree
import pydot
clf = tree.DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
from sklearn.externals.six import StringIO
from pydot import *
dotfile = StringIO()
tree.export_graphviz(clf, out_file = dotfile)
pydot.graph_from_dot_data(dot_data.getvalue()).write_png("dtree2.png")

我收到以下错误: AttributeError:module' pydot'没有属性' graph_from_dot_data'

我努力寻找解决方案,但无法做到。请有人在这方面帮助我。

2 个答案:

答案 0 :(得分:4)

1)如果您使用的是python 3 +

,请使用pydotplus

2)将最后一行更改为 pydotplus.graph_from_dot_data(dotfile.getvalue())。write_png(“dtree2.png”),因为您的变量名称是'dotfile'而不是'dot_data'< / p>

P.S - 安装pydotplus后重新安装graphviz

希望这有帮助!

答案 1 :(得分:2)

pydot.graph_from_dot_data()会返回一个列表,请尝试:

graphs = pydot.graph_from_dot_data(dot_data.getvalue())
graphs[0].write_png("dtree2.png")