![](/img/trans.png)
[英]GraphViz's executables not found (python 3 and pydotplus)
[英]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。 最后重新启动您的 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 . 设置路径变量
我尝试设置环境变量。 没有用。我在 Windows 环境中结合上述方法对我有用:
从https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载了 graphviz-2.38.zip
将解压后的文件夹复制到 C:\\Users\\\\AppData\\Local\\Continuum\\anaconda3\\pkgs\\Graphviz2.38
我在代码中调用了 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 并且遇到了同样的问题。
我已经按顺序执行以下操作:
在那之后工作得很好。
我在尝试通过 pydotplus 和 graphviz 创建决策树时遇到了同样的问题。 并使用路径变量方法解决了这个问题。
以下是我使用的确切步骤:
虽然我已经通过 conda install 命令安装了 graphviz,但我从下面的路径重新下载了最新的软件包。 https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载:graphviz-2.38.zip(稳定版)
将解压后的文件夹复制到 C: Drive 的以下路径下。 C:\\程序文件(x86)\\
修改了系统路径变量并为其添加了以下路径。 路径变量:控制面板>系统和安全>系统>高级系统设置>环境变量>路径C:\\Program Files (x86)\\graphviz-2.38\\release\\bin;
将上述路径添加到环境变量后,重新启动系统。
它工作正常,我能够将决策树创建为 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
找到: C:\\Users\\zhangqianyuan\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\pydotplus
打开graphviz.py
找到第 1925 行 - 第 1972 行,找到函数:
def create(self, prog=None, format='ps'):
在函数中找到:
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]) )
在这两个块之间添加这个(你的 Graphviz 的可执行路径):
self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"`
添加后的结果是:
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]) )
保存更改的文件,然后您可以成功运行它。
你最好将它保存为 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)是执行以下操作:
import sys sys.path.append('C:/Users/usrname/AppData/Local/Continuum/anaconda3/Library/bin/graphviz/')
这是我用过的新解决方案:)
我遇到了同样的问题,我正在使用 Anaconda 和 Jupyter Notebook。
我为解决这个问题所做的不是从互联网安装 Graphiz.zip!
我只是做了这些步骤:
conda create -n [env_name]
创建新环境conda install graphviz
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 二进制文件的路径)我刚刚遇到了同样的问题。 这是我的解决方案。
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后检查这些步骤:
我通过首先卸载所有已安装的 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.