找不到Graphviz的可执行文件(Python 3.4)

时间:2015-02-04 02:30:53

标签: python path graphviz pydot

我在Windows 7上运行Python3.4。我正在尝试使用graphviz的Python接口。这是我打算运行的脚本:

from graphviz import Digraph
import pydotplus

dot = Digraph(comment='The Round Table')

dot.node('A', 'King Arthur')
dot.node('B', 'Sir Bedevere the Wise')
dot.node('L', 'Sir Lancelot the Brave')
dot.edges(['AB', 'AL'])
dot.edge('B', 'L', constraint='false')

print(dot.source)
dot.render('test-output/round-table.gv', view=True)

我在运行时遇到以下错误:

RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test-output/round-table.gv'], make sure the Graphviz executables are on your systems' path

现在我确信我已正确安装了正确的依赖项。我首先尝试设置正确的环境变量。 graphviz可执行文件位于 C:\ Program Files(x86)\ Graphviz2.37 \ bin ,所以我转到了Environment Variables部分。那里有两个部分:用户变量和系统变量。在系统变量下,我点击路径,然后点击Edit并添加; C:\ Program Files(x86)\ Graphviz2.37 \ bin 到最后字符串并保存。这并不能解决错误。

然后,在答案given here之后我卸载了pydot(实际上我在这里使用pydotplus)并重新安装它,但仍然没有成功。

我一直在努力解决这个问题,整个PATH变量只是令人困惑和令人沮丧。

30 个答案:

答案 0 :(得分:13)

在我的情况下(Win10,Anaconda3,Jupyter笔记本)"conda install graphviz"之后我必须添加到PATH:C:\Users\username\Anaconda3\Library\bin\graphviz

修改PATH转到Control Panel > System and Security > System > Advanced System Settings > Environment Variables > Path > Edit > New

答案 1 :(得分:10)

我在Ubuntu 16.04上也遇到过这个问题。

通过运行sudo apt-get install graphviz以及我已执行的pip安装来修复。

答案 2 :(得分:7)

在win10中使用anaconda的jupyter(ipython)笔记本我在conda install graphviz

安装graphviz之后pip install graphviz解决了问题

答案 3 :(得分:5)

当你将C:\ Program Files(x86)\ Graphviz2.38 \ bin添加到PATH时,你必须关闭你的IDE环境,如spyder并重新启动,你将解决" RuntimeError:make确保您的系统上有Graphviz可执行文件。路径"

答案 4 :(得分:5)

由于未提及Mac OS,我将补充说我在OS X Yosemite上遇到了同样的问题,我找到的解决方案是brew install graphviz

这解决了这个问题,不确定我是否应该只编辑此列表中的其他答案之一,因为它们似乎都是相同的答案,只需安装除Python库之外的官方软件包。 / p>

答案 5 :(得分:4)

如图所示,已知Graphviz2.37在Windows上存在PATH变量问题。我卸载了它,删除了与之关联的环境变量,而是下载并安装了较新的beta版本2.39,它现在就像一个魅力。

答案 6 :(得分:4)

我解决了直接从https://graphviz.gitlab.io/_pages/Download/Download_windows.html安装并包含在windows路径中的问题:

C:\Program Files (x86)\Graphviz2.38\bin

C:\Program Files (x86)\Graphviz2.38

重新启动Windows后

答案 7 :(得分:4)

要解决此问题,当您成功安装graphviz2.38时,请将您的PATH变量添加到系统路径。在系统变量下,您可以单击路径,然后单击编辑并添加; C:\ Program Files(x86)\ Graphviz2 .38 \ bin到字符串的末尾并保存。之后,像spyper一样重启你的pythonIDE,然后运行良好。

不要忘记关闭Spyder然后重启。

答案 8 :(得分:2)

对于Windows 8.1& python 2.7,我按照以下步骤解决了问题

1。下载并安装graphviz-2.38.msi http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi

2。设置路径变量

  • 控制面板>系统和安全性>系统>高级系统设置>环境变量>路径>修改
  • 添加' C:\ Program Files(x86)\ Graphviz2.38 \ bin'

答案 9 :(得分:2)

我在Jupyter Notebook中遇到了相同的问题。 添加它,您就可以开始了。

import os

os.environ['PATH'] = os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"

答案 10 :(得分:2)

在尝试通过pydotplus和graphviz创建决策树时,我遇到了同样的问题。并使用路径变量方法来解决此问题。

以下是我使用的确切步骤:

  1. 尽管我已经通过conda install命令安装了graphviz,但是我还是从下面的路径重新下载了最新的软件包。 https://graphviz.gitlab.io/_pages/Download/Download_windows.html 下载:graphviz-2.38.zip(稳定发行版)

  2. 将提取的文件夹复制到C:驱动器上的以下路径下。 C:\ Program Files(x86)\

  3. 修改了系统路径变量,并向其添加了以下路径。 路径变量:控制面板>系统和安全性>系统>高级系统设置>环境变量>路径 C:\ Program Files(x86)\ graphviz-2.38 \ release \ bin;

  4. 将以上路径添加到环境变量后,重新启动系统。

  5. 工作正常,我能够将决策树创建为png。

    enter image description here

答案 11 :(得分:2)

我尝试设置环境变量。没用。我在Windows环境中 结合以上方法对我有用:

  1. https://graphviz.gitlab.io/_pages/Download/Download_windows.html

  2. 下载了graphviz-2.38.zip
  3. 将提取的文件夹复制到C:\ Users \\ AppData \ Local \ Continuum \ anaconda3 \ pkgs \ Graphviz2.38

  4. 我在代码中调用了Graphviz位置

    构建分类器

    import sklearn.datasets as datasets
    import pandas as pd
    from sklearn.tree import DecisionTreeClassifier
    iris=datasets.load_iris()
    df=pd.DataFrame(iris.data, columns=iris.feature_names)
    y=iris.target
    
    dtree=DecisionTreeClassifier()
    dtree.fit(df,y)
    

    建造树

    from sklearn.externals.six import StringIO  
    from IPython.display import Image  
    from sklearn.tree import export_graphviz
    import pydotplus
    import graphviz
    import os
    os.environ\["PATH"\] += os.pathsep + 'C:/Users/tstusr/AppData/Local/Continuum/anaconda3/pkgs/Graphviz2.38/bin'
    
    dot_data = StringIO()
    export_graphviz(dtree, out_file=dot_data,  
                    filled=True, rounded=True,
                    special_characters=True)
    graph = pydotplus.graph_from_dot_data(dot_data.getvalue())  
    Image(graph.create_png())
    

    这是树的样子:

enter image description here

答案 12 :(得分:1)

如果您使用的是Win10,请安装Graphviz,然后使用以下命令添加路径。

import os
os.environ["PATH"] += os.pathsep + 'C:\Program Files (x86)\Graphviz2.38/bin/'

答案 13 :(得分:1)

请注意,我正在使用Windows10。以下某些内容可能适用于或可能不适用于其他版本的Windows或操作系统:

**注2:**
“系统上的Graphviz bin文件地址”可以是 C:\ Program Files(x86)\ Graphviz2.38 \ bin 或在其中安装Graphviz的任何其他路径。

我们不仅遇到了Graphviz的问题,而且还有我们要在Jupyter中使用的其他外部EXE文件的问题。
原因是当jupyter想要导入一个程序包时,它会在工作目录中查找该程序包,而当它找不到该程序包时,它会返回此类错误。
我们能做的就是解决这个问题,如下所示:
1)检查Graphviz是否已安装在您的系统上,如果没有,则可以从以下位置下载并安装它:

https://graphviz.gitlab.io/_pages/Download/Download_windows.html
然后安装它。安装Graphviz时,请记住将其安装在哪个位置(哪个文件夹中)。 如果在使用

时看到上述错误
import graphviz

然后您有几种选择:

2)您可以通过

在ipynb中调用.exe文件
import os
os.environ["PATH"] += os.pathsep + r'the Graphviz bin file address on your system'

根据我的经验,它仅适用于与我一起使用的同一个ipynb,并且每次打开笔记本时都需要调用此代码行。

3)如果要在Jupyter中找到exe文件,则需要设置环境路径。
在Windows 10中,您可以执行以下操作:
控制面板>系统和安全性>系统>高级系统设置>环境变量>路径>编辑>新建
然后添加“您系统上的Graphviz bin文件地址” 在Windows 8或更低版本中,转到:
控制面板>系统和安全性>系统>高级系统设置>环境变量
然后将;(分号)+“系统上的Graphviz bin文件地址”添加到路径字符串的末尾
注意:切记重新启动计算机。

4)甚至无法正常工作,请定义一个变量,用于:
控制面板>系统和安全>系统>高级系统设置>环境变量,然后:

Start to define an environmental variable

然后定义一个变量: Remember to name the variable Graphviz

记住要命名变量Graphviz。最后,重新启动您的PC,并希望它能正常工作。

答案 14 :(得分:1)

尝试了很多方法,这才是真正解决问题的方法-它适用于Windows 8.1 / 10和python 3。

1。 pip安装graphviz

2。所需的关键操作是按照以下步骤设置路径变量:

a。控制面板>系统和安全性>系统>高级系统设置>环境变量>路径>编辑 b。添加'C:\ Program Files(x86)\ Graphviz2.38 \ bin'

答案 15 :(得分:1)

只需安装

conda install graphviz

然后安装

conda install -c conda-forge pydotplus

答案 16 :(得分:1)

我在Windows 10中遇到了同样的问题。

首先,我使用以下命令安装graphviz-2.38.0,没有任何问题......

install -c anaconda graphviz=2.38.0

其次,我使用以下命令安装pydotplus没有任何问题...

install -c conda-forge pydotplus

之后,当我到达可视化决策树的步骤时,{InvocationException: GraphViz's executables not found}会出现以下问题......

C:\Users\admin\Anaconda3\lib\site-packages\pydotplus\graphviz.py in create(self, prog, format)
   1958             if self.progs is None:
   1959                 raise InvocationException(
-> 1960                     'GraphViz\'s executables not found')
   1961 
   1962         if prog not in self.progs:

InvocationException: GraphViz's executables not found

就我而言,我需要做的就是将graphviz可执行文件的环境路径放在我的用户PATH环境变量中并修复它。只需确保它是YOUR.exe文件所在的路径:)

C:\Users\admin\Anaconda3\pkgs\graphviz-2.38.0-4\Library\bin\graphviz

答案 17 :(得分:0)

为 Anaconda 配置 Graphviz 的完整步骤 - Jupiternotebook:

从以下位置下载并安装“适用于 Windows 10 的 EXE 安装程序”:https://graphviz.org/download/

环境变量:将 C:\Program Files\Graphviz 2.44.1\bin 添加到用户路径

环境变量:将 C:\Program Files\Graphviz 2.44.1\bin\dot.exe 添加到系统路径

安装graphviz后检查这些步骤:

  1. pip install graphviz。
  2. pip 安装 pydotplus
  3. conda 安装 pydotplus
  4. 添加环境变量的路径 (C:\Users\anaconda3\Library\bin\graphviz)
  5. 重启 anaconda jupiter notebook 内核(如果已经在运行)。

答案 18 :(得分:0)

我刚刚遇到了同样的问题。这是我的解决方案。

1.) 安装graphviz

确保你能找到这个文件夹 INSTALL_LOCATION\"Graphviz2.38\bin"

2.) 对于 Dot 对象,添加此代码

dot.set_graphviz_executables( {'dot': r'C:\Program Files\Graphviz\bin\dot.exe'})

在graphviz.py中,它确实提供了这个功能来手动设置执行文件的路径。然后,您应该可以运行代码了。

仅供参考: 这是 set_graphviz_executables 的描述

    This method allows to manually specify the location of the GraphViz
    executables.

    The argument to this method should be a dictionary where the keys are
    as follows:

        {'dot': '', 'twopi': '', 'neato': '', 'circo': '', 'fdp': ''}

    and the values are the paths to the corresponding executable,
    including the name of the executable itself.

答案 19 :(得分:0)

对我来说(Windows 10 + Pycharm2020)这是有效的:

  • C:\Program Files\Graphviz\bin 添加到 PATH(Graphviz 二进制文件的路径)
  • 重启 - 也许 PyCharm 重启就足够了

答案 20 :(得分:0)

我通过首先卸载所有已安装的 pydot、pydotplus 和 graphvis 版本来解决这个问题

pip uninstall pydot 
pip uninstall pydotplus
pip uninstall graphviz

然后我重新安装它们:

conda install graphviz
conda install pydot
conda install pydotplus

答案 21 :(得分:0)

尝试

import os

os.environ['PATH']=os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"

答案 22 :(得分:0)

这是我使用过的全新解决方案:)

我遇到了同样的问题,我正在使用Anaconda和Jupyter Notebook。

我解决该问题的方法不是从互联网安装Graphiz.zip!

我刚刚执行了以下步骤:

  1. 使用>> conda create -n [env_name]
  2. 创建新环境
  3. 在此新环境中安装graphviz lib:>> conda install graphviz
  4. 我在笔记本电脑的单元格中写下了这行,并运行import os os.environ['PATH'] = os.environ['PATH']+';'+os.environ['CONDA_PREFIX']+r"\Library\bin\graphviz"

最后,图像出现了,我为此举办了一个小型派对,因为距离我花了3天时间:(

答案 23 :(得分:0)

对此问题最有效的解决方案(Windows 10,Jupyter Notebook)是执行以下操作:

  1. pip安装graphviz
  2. 重新启动jupyter
  3. 将以下代码放入笔记本中并执行:
BigInteger y = g.modPow(x, p);

答案 24 :(得分:0)

对于所有即使在尝试了上述步骤后仍在Windows 10中面临此问题的人,这对我来说都是有效的- 对于尝试调试此错误的Windows 10用户,以管理员身份(重要!)启动CMD并运行dot -c,然后运行dot -v
这为我解决了这个问题

答案 25 :(得分:0)

我在这个问题上停留了很长时间,但一段时间后我找到了解决方案:

答案 26 :(得分:0)

我不确定这是否是此问题的答案,但这似乎也是“如何使graphviz在我的设置上运行?”线。我也没有看到function parseItemByYear(item){ // replace all | with , var modifiedObj = item.replace(/\|/g, ','); // split into array var newArr = modifiedObj.split('}'); // remove all var newestArr = newArr.map(function(item){item.replace(/^\{/g,'')}); // JSON.parse the object // var lovObj = JSON.parse(modifiedFilingStatusObj); // capture the current tax year // replace , with | // rebuild the object // return the filtered object return newestArr; } 被提及。

因此: 使用Jupyter笔记本的Ubuntu 16.04,conda Python 3.7。

python-graphviz

仅尝试第一个命令后,图像将无法渲染;他们在运行第二个之后确实进行了渲染。

我还安装了conda install -c anaconda graphviz conda install -c conda-forge python-graphviz ,但是在行为,性能或图像分辨率上没有看到任何变化。

答案 27 :(得分:0)

请使用pydotplus代替pydot

  1. 查找:C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

  2. 打开graphviz.py

  3. 找到第1925行-1972行,找到函数:

    def create(self, prog=None, format='ps'):
    
  4. 在函数中找到:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  5. 在两个块之间添加以下内容(您的Graphviz的可执行路径):

      self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"`
    
  6. 添加后的结果是:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    
    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  7. 保存更改的文件,然后您就可以成功运行它。

  8. 您最好将其另存为bmp文件,因为png文件将无法工作。 picture is here

答案 28 :(得分:0)

我在Anaconda 3上使用Windows 10,Python 3.6并且遇到了同样的问题。

我按顺序执行以下操作:

  1. 来自Anaconda Terminal:pip install pydotplus
  2. 来自Anaconda Terminal:conda install pydotplus
  3. 来自Anaconda Terminal:pip install graphviz
  4. 来自Anaconda Terminal:conda install graphviz
  5. 去了Windows环境Varialbes,PATH,并在Anaconda的graphviz目录下添加了我的dot.exe文件的位置。
  6. 之后工作正常。

答案 29 :(得分:0)

我在Jupyter的Ubuntu(14.04)上遇到了同样的问题。

为了解决这个问题,我已经将点库添加到python sys.path

首先:检查点是否已安装,

然后: 找到他的路径whereis dot - > /本地/笔记本/ miniconda2 / ENVS / IK2 / bin中/点

最后在python脚本中:sys.path.append(“/ local / notebook / miniconda2 / envs / ik2 / bin / dot”)