《安装pydot(和Graphviz)》

最近老师布置的有关决策树的作业刚好要用到pydot和graphviz这两个第三方包,在配置过程中还是跌跌撞撞,不过最终还是配置好了,mark一下过程。。。

(平台和环境:win10 &&Anaconda &&PyCharm)

    • 一 重要的安装顺序
    • 二 安装graphviz
    • 三 安装pydot
    • 四 在使用过程中报错 pydotInvocationException GraphVizs executables not found
        • 原因是 你没有将Graphviz安装目录的bin目录添加到系统的环境变量中进行添加即可
        • 若添加之后仍然报错则尝试另一种方法
    • 五 如果使用pip或conda方式通过Anaconda安装第三方包怎样找到这些第三方包的安装位置

一、 重要的安装顺序


先安装graphviz,再安装pydot!!!


二、 安装graphviz


(前提:你已经将你的Anaconda添加到环境变量中了)

按照网上的blog尝试了三种方法:

  1. 法一
    在cmd中输入“conda install graphviz”
    (不过按照这样安装了之后,我使用 from graphviz import Digraph时候仍然报错,表示找不到模块graphviz)

  2. 法二
    在cmd中输入“pip install graphviz”
    (按照这样安装了之后,我使用 from graphviz import Digraph时候仍然报错,表示找不到模块graphviz)

  3. 法三
    到官网下载graphviz的安装包(可选择msi格式),这里我提供个链接, 一直按next(记住安装路径,比如在我的电脑上它的安装路径是C:\Program Files (x86)\Graphviz2.38),然后将该目录下的bin文件夹添加到系统的环境变量中(即把C:\Program Files (x86)\Graphviz2.38\bin添加进环境变量中), 最后在cmd输入“dot-version”并按回车,若显示出graphviz的相关版本信息,则安装配置成功。
    (按照这样安装了之后,可以正常使用graphviz包了,无报错信息!)



三、 安装pydot


1、在cmd输入“pip install pydot”


2、使用pydot.find_graphviz()时发现报错:AttributeError: module ‘pydot’ has no attribute ‘find_graphviz’

在谷歌和StackOverflow上查找了一番之后,发现如今默认安装的pydot为1.2.4版本,而此版本的pydot已经不再支持find_graphviz功能,只有1.1.0版本支持该方法。。。。orz。。。。


尝试了网上的几种做法,分享一下:

第一种
在cmd输入“pip install pydot==1.1.0”
(但是在我的环境里输入这条命令后报错 SyntaxError: invalid syntax,好像行不通)


第二种
在cmd输入“pip install pydot-ng”
(我成功安装了pydot-ng,但是并没有解决find_graphviz的报错问题,依然报错)


第三种
果断手工安装pydot1.1.0!
到网上找到并下载pydot1.1.0的安装包(可以是zip格式),这里我提供个链接,名字为pydot-1.1.0.zip。然后将其置于一个特定的目录下(比如D:\pydot-1.1.0.zip),然后在cmd中进入D盘,输入 “pip install pydot1.1.0.zip”,即可安装成功!



四、 在使用过程中报错: pydot.InvocationException: GraphViz’s executables not found


1. 原因是: 你没有将Graphviz安装目录的bin目录添加到系统的环境变量中,进行添加即可;

2. 若添加之后仍然报错,则尝试另一种方法:

找到你安装pydot的目录(具体可参照”五“),找到pydot.py文件,然后用编辑器打开(可以使用Notepad++或者EditPlus),之后找到”def find_graphviz()“这个函数下的” # Method 3 (Windows only)“这个标志,然后将这个标志下的那段代码改为下面这段代码:

# Method 3 (Windows only)
    #
    if os.sys.platform == 'win32':   
        # Try and work out the equivalent of "C:\Program Files" on this
        # machine (might be on drive D:, or in a different language)
        #        
       if False:#os.environ.has_key('PROGRAMFILES'):        
            # Note, we could also use the win32api to get this
            # information, but win32api may not be installed.            
           path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')            
       else:        
           #Just in case, try the default...
            path = r"C:\Program Files (x86)\Graphviz2.38\bin"            
       progs = __find_executables(path)

       if progs is not None :        
            #print "Used default install location"
           return progs

    for path in (
        '/usr/bin', '/usr/local/bin',
        '/opt/bin', '/sw/bin', '/usr/share',
        '/Applications/Graphviz.app/Contents/MacOS/' ):        
        progs = __find_executables(path)

        if progs is not None :
            #print "Used path"
            return progs
    # Failed to find GraphViz
    #

    return None

(PS:其中”C:\Program Files (x86)\Graphviz2.38\bin“是我安装graphviz时的bin文件夹路径,朋友们只要改成你们自己安装的graphviz的bin文件夹路径即可~~)


五、 如果使用pip或conda方式通过Anaconda安装第三方包,怎样找到这些第三方包的安装位置?


假设你已经找到了Anaconda的安装目录,则“anaconda3\Lib\site-packages”目录下就是第三方包的存在位置。有时要找到Anaconda的安装目录也不容易(加上你忘记它默认安装在哪里了),因为
使用默认安装的话,它会将安装路径设为“C:\Users\你的用户名\AppData\Local\Continuum\anaconda3”,其中有时AppData这个目录你会找不到,其实是被隐藏起来了,只需点击文件资源管理器上方的“查看”选项卡,将“隐藏的项目”那一项勾选即可,你会发现AppData以浅黄色半透明的文件夹方式显现出来了哈哈。。。

你可能感兴趣的:(《安装pydot(和Graphviz)》)