繁体   English   中英

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

[英]Graphviz's executables are not found (Python 3.4)

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

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所以我去了环境变量部分。 有两个部分:用户变量和系统变量。 在系统变量下,我单击路径,然后单击Edit并将;C:\\Program Files (x86)\\Graphviz2.37\\bin 添加到字符串的末尾并保存。 这并没有清除错误。

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

我已经尝试了几个小时来解决这个问题,整个 PATH 变量的事情只是令人困惑和令人沮丧。

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

除了我已经执行的 pip install 之外,还通过运行sudo apt-get install graphviz来修复。

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

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

因为没有提到 Mac OS 我会补充说我在 OS X Yosemite 上遇到了同样的问题,我找到的解决方案是做brew install graphviz

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

在带有 anaconda 的 jupyter(ipython) 笔记本上,win10 我通过pip install graphviz conda install graphviz后通过conda install graphviz解决了这个问题

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

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

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

在我重新启动 Windows 之后

当您将 C:\\Program Files (x86)\\Graphviz2.38\\bin 添加到 PATH 时,您必须关闭您的 IDE 环境,例如 spyder 并重新启动,您将解决“运行时错误:确保 Graphviz 可执行文件在您的系统上” ' 小路”

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

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

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

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

请注意,我使用的是 Windows 10。以下某些内容可能适用于其他版本的 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 中,您可以执行以下操作:
控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量 > 路径 > 编辑 > 新建
然后在 Windows 8 或更低版本中添加“系统上的 Graphviz bin 文件地址”:
控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量
然后将;(分号)+“系统上的Graphviz bin文件地址”添加到路径字符串的末尾
注意:记得重启你的机器。

4)即使这不起作用,定义一个变量去:
控制面板 > 系统和安全 > 系统 > 高级系统设置 > 环境变量,然后:

开始定义环境变量

然后定义一个变量如下: 记住将变量命名为 Graphviz

请记住将变量命名为 Graphviz。 最后重新启动您的 PC 并希望它可以工作。

我在 Jupyter Notebook 中遇到了同样的问题。 添加这个,你就可以开始了。

import os

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

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

只需安装

conda install graphviz

然后安装

conda install -c conda-forge pydotplus

对于 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”

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

  1. https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载了 graphviz-2.38.zip

  2. 将解压后的文件夹复制到 C:\\Users\\\\AppData\\Local\\Continuum\\anaconda3\\pkgs\\Graphviz2.38

  3. 我在代码中调用了 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())

    这是树的外观:

在此处输入图片说明

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

我已经按顺序执行以下操作:

  1. 从 Anaconda 终端:pip install pydotplus
  2. 从 Anaconda 终端: conda install pydotplus
  3. 从 Anaconda 终端:pip install graphviz
  4. 从 Anaconda 终端: conda install graphviz
  5. 转到Windows环境变量,PATH,并在Anaconda的graphviz目录下添加我的dot.exe文件的位置。

在那之后工作得很好。

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

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

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

  2. 将解压后的文件夹复制到 C: Drive 的以下路径下。 C:\\程序文件(x86)\\

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

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

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

    在此处输入图片说明

我在 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

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

1 . pip安装graphviz

2 . 所需的关键操作是通过以下步骤设置路径变量:

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

尝试

import os

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

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

为了解决它,我将点库添加到 python sys.path

首先:检查点是否安装,

然后:找到他的路径whereis dot -> /local/notebook/miniconda2/envs/ik2/bin/dot

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

请使用 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 文件不起作用。图片在这里

我不确定这是否是这个问题的答案,但这似乎也是“我如何让 graphviz 在我的设置上运行?” 线。 我也没有看到任何地方提到python-graphviz

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

conda install -c anaconda graphviz
conda install -c conda-forge python-graphviz

仅尝试第一个命令后图像不会呈现; 他们在运行第二个后确实渲染了。

我还安装了pydot-plus ,但没有发现行为、性能或图像分辨率有任何变化。

我在这个问题上被困了很长时间,但过了一段时间我找到了解决方案:

对于所有在尝试上述步骤后在 Windows 10 中遇到此问题的人,这对我有用 - 对于尝试调试相同错误的 Windows 10 用户,以管理员身份启动 CMD(重要!)并运行dot -c然后运行dot -v
这为我解决了这个问题

对我有用的最简单的解决方案(Windows 10,Jupyter Notebook)是执行以下操作:

  1. pip安装graphviz
  2. 重启 jupyter
  3. 将以下代码放入 notebook 并执行:
 import sys sys.path.append('C:/Users/usrname/AppData/Local/Continuum/anaconda3/Library/bin/graphviz/')

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

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

我为解决这个问题所做的不是从互联网安装 Graphiz.zip!

我只是做了这些步骤:

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

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

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

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

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

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.

为 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安装graphviz。
  2. pip 安装 pydotplus
  3. conda 安装 pydotplus
  4. 添加环境变量的路径( C:\\Users<username>\\anaconda3\\Library\\bin\\graphviz
  5. 重新启动 anaconda jupiter notebook 内核(如果已经在运行)。

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

pip uninstall pydot 
pip uninstall pydotplus
pip uninstall graphviz

然后我重新安装了它们:

conda install graphviz
conda install pydot
conda install pydotplus

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM