我正在玩决策树算法并试图绘制树。但是,IDE 报告了以下错误:
Couldn't import dot_parser, loading of dot files will not be possible.
<class 'pandas.core.frame.DataFrame'>
Traceback (most recent call last):
File "C:/Users/s152730/Desktop/exe1.py", line 70, in <module>
graph = pydot.graph_from_dot_data(test.getvalue())
File "C:Python27libsite-packagespydot.py", line 220, in graph_from_dot_data
return dot_parser.parse_dot_data(data)
NameError: global name 'dot_parser' is not defined
我不知道如何处理这个问题,因为我试图卸载并重新安装 pydot dan pyparsing,这是在其他答案中提出的,但它没有帮助。
这是我的代码:
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import ExtraTreeClassifier
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
from IPython.display import Image
test = StringIO()
tree.export_graphviz(clf, out_file=test, feature_names = attribute_names)
graph = pydot.graph_from_dot_data(test.getvalue())
graph.writepng('test.png')
image(filename = 'test.png')
我正在使用python2.7并在PyCharm上运行,操作系统是win8.1。感谢您的帮助。
似乎您的错误是由于安装顺序不正确而缺少库(pyparsing
)的一部分。
看这里和这里
对初学者来说很明显,但对新手来说不是:解决方法是 在安装 Pydot(或软件包)之前安装 pyparsing <2.0.0 这取决于 Pydot。
$ 点安装pyparsing==1.5.7
解决方案似乎是先删除pydot
并pyparsing
,然后先安装pyparsing
,然后再安装pydot
。
要安装的版本将来很可能会更改,因此目前似乎您需要运行如下内容:(取自这个可爱的答案)
pip uninstall pyparsing
pip install -Iv https://pypi.python.org/packages/source/p/pyparsing/pyparsing-1.5.7.tar.gz#md5=9be0fcdcc595199c646ab317c1d9a709
pip install pydot
对我来说,我发现一个很好的技巧是安装 pydotplus,因为它与 pyparsing v2.0 及更高版本兼容。它还具有可以与Anaconda的graphviz安装一起使用的优点。我使用的是 Anaconda v2.4.1 以及使用 conda 安装的 Windows 7 x64 和 Graphviz 2.38。
我刚刚将pydot
更新为1.2.3
,错误消失了。
sudo pip install -U pydot