Python 名称错误:全局名称';dot#u解析器';没有定义

Python 名称错误:全局名称';dot#u解析器';没有定义,python,python-2.7,scikit-learn,pyparsing,pydot,Python,Python 2.7,Scikit Learn,Pyparsing,Pydot,我在玩决策树算法,并试图绘制树。但是,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 <mo

我在玩决策树算法,并试图绘制树。但是,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:\Python27\lib\site-packages\pydot.py", line 220, in graph_from_dot_data
        return dot_parser.parse_dot_data(data)
    NameError: global name 'dot_parser' is not defined
我正在使用python2.7并在PyCharm上运行,操作系统是win8.1。
感谢您的帮助。

由于安装顺序不正确,您的错误似乎是缺少库的一部分(
pyparsing

看到和

对于新手来说,这是显而易见的:解决方法是 在安装pydot(或软件包)之前,先安装pyparsing<2.0.0 这取决于pydot。)

$pip install pyparsing==1.5.7

解决方案似乎是首先删除
pydot
pyparsing
,然后首先安装
pyparsing
,然后安装
pydot

要安装的版本在将来很可能会更改,因此目前您似乎需要运行以下内容:(摘自可爱的答案)


对我来说,我发现一个很好的技巧是安装,因为它与pyparsing v2.0及更高版本兼容。它还有一个优点,即它可以与Anaconda的graphviz安装一起工作。我正在使用Anaconda v2.4.1,在Windows 7 x64和Graphviz 2.38上使用condas安装。

我刚刚将我的
pydot
更新为
1.2.3
,错误消失

sudo pip install -U pydot

有痕迹吗?或者,可能会缩减代码,直到得到所谓的。这将有助于隔离问题。只需更新stacktrace即可。我完全不知道如何解决这个问题。您能帮助我吗?首先,尝试通过隔离部分代码来创建一个问题,直到您隔离出产生问题的确切行/模块/包。Stacktrace已经很有帮助了,因为现在我们知道,从\u dot\u data方法调用
pydot.graph\u时会出现问题。请尝试:pip installpydot2@Tanasis是这样吗?我从来没有遇到过这个问题,你有没有可以引用的源代码?在我完成了
pip卸载pyparsing
之后,
pip安装
会抱怨找不到
pyparsing
,并且无法工作。我希望我能抽出时间来重现这一点,并将错误粘贴给你,但我最近忙得不可开交(从今天起,不需要安装pyparsing<2.0.0(否则您将遇到“找不到模块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
sudo pip install -U pydot