我在Windows 8中安装了GraphViz 2.32,并将C:\ Program Files(x86)\ Graphviz2.32 \ bin添加到系统PATH变量中。仍然pydot无法找到它的可执行文件。
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
graph.write_png('example1_graph.png')
File "build\bdist.win32\egg\pydot.py", line 1809, in <lambda>
lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
File "build\bdist.win32\egg\pydot.py", line 1911, in write
dot_fd.write(self.create(prog, format))
File "build\bdist.win32\egg\pydot.py", line 1953, in create
'GraphViz\'s executables not found' )
InvocationException: GraphViz's executables not found
我发现了这个https://code.google.com/p/pydot/issues/detail?id=65,但无法解决问题。
答案 0 :(得分:61)
问题是pydot模块找不到GraphViz的路径,如回溯中所示:
&#39;未找到GraphViz的可执行文件&#39;
我通过将GraphViz bin目录添加到我的计算机路径中,在Windows 7计算机上解决了这个问题。然后重新启动我的python IDE以使用更新的路径。
答案 1 :(得分:59)
在Mac上brew install graphviz
解决了我的问题。
答案 2 :(得分:28)
这是因为我在安装pydot后安装了graphviz。因此,pydot无法找到它。以正确的顺序重新安装它解决了问题。
答案 3 :(得分:20)
在我的案例中来自Sadik的回答 pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible在Ubuntu 12.04.5 LTS上为我工作
sudo apt-get install python-pydot
答案 4 :(得分:19)
我尝试通过控制面板添加PATH,但还需要重新启动命令提示符。以下内容也适用于更新Notebook会话中的路径而不退出:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
答案 5 :(得分:8)
您需要从Graphviz安装,然后将您安装Graphviz及其bin目录的文件夹路径添加到系统环境路径。
答案 6 :(得分:8)
对于Windows 8.1&amp; python 2.7,我按照以下步骤解决了问题
1。下载并安装graphviz-2.38.msi https://graphviz.gitlab.io/_pages/Download/Download_windows.html
2。设置路径变量
控制面板&gt;系统和安全性&gt;系统&gt;高级系统设置&gt;环境变量&gt;路径&gt;编辑 添加&#39; C:\ Program Files(x86)\ Graphviz2.38 \ bin&#39;
答案 7 :(得分:4)
将dot.exe添加到您的路径中。 右键单击我的电脑&gt;高级系统设置&gt; <环境变量> <高光'路径'&gt;编辑 然后将引号中的所有内容追加到路径“; C:\ Program Files(x86)\ Graphviz2.34 \ bin \”,具体取决于您安装Graphviz ofcourse的位置。然后重新启动python shell并键入。
导入pydot pydot.find_graphviz() 确保'bin'后面有一个斜杠,所以它从文件夹中获取所有内容,我尝试没有斜线,上面的代码没有返回任何内容,但是在添加斜杠后,它返回了所需的graphviz可执行文件及其路径。
答案 8 :(得分:3)
对我来说:(Win10,Anaconda3) 确保你已完成“conda install graphviz”
我必须添加到PATH:C:\ Users \ username \ Anaconda3 \ Library \ bin \ graphviz
要修改PATH,请转到“控制面板”&gt;系统和安全性&gt;系统&gt;高级系统设置&gt;环境变量&gt;路径&gt;编辑&gt;新
确保在此之后重新启动您的IDE。 它应该工作
答案 9 :(得分:3)
我正在使用Windows 10和Anaconda 3.6.5。我没有管理员权限,因此,如果有人在像我这样的情况下,此解决方案非常有效。
我的graphviz的路径是外观
C:\Users\User_Name\AppData\Local\Continuum\anaconda3\Library\bin\graphviz
在Spyder或Jupyter中,键入以下内容:
import os
os.environ['PATH'].split(os.pathsep)
这将列出您环境中的所有路径。看看他们,如果您的graphviz路径不在这里,那么去找到它并复制该路径,就像上面的示例一样。
然后键入以下内容:
os.environ['PATH'] += os.pathsep + 'C:\\Users\\User_Name\\AppData\\Local\\Continuum\\anaconda3\\Library\\bin\\graphviz'
仅此而已,但是请注意,如果重新启动内核,则每次都必须运行这些命令
答案 10 :(得分:2)
库考虑将路径设置为 C:\ Program Files \ ATT \ Graphviz \ bin ,但默认情况下,Graphviz安装到 C:\ Program Files(x86)\ Graphviz < / em>经历了32位标准,因此 pydot 无法获得所需的路径。 只需根据脚本的要求移动目录,您就可以了。
P.S。: - 考虑对Environmnet变量进行等效更改。
P.S.S: - 还要检查Graphviz是直接在Program Files(x86)下还是在ATT下。
答案 11 :(得分:2)
在Windows中,即使安装了graphviz-2.38.msi,也可以在pydot.py中添加自己的路径(在site-package文件夹下找到)
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 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:\PYTHON27\GraphViz\bin" # add here.
答案 12 :(得分:1)
我正在运行Windows 10计算机并且也遇到了一些问题。 我通过msi安装程序安装了graphviz。通过系统设置添加对我不起作用。
我使用msi删除了安装,并使用了Windows程序包管理器chocolatey。 删除已安装的版本是必要的,否则巧克力将无法安装。
现在运行正常。我建议这样做。
答案 13 :(得分:1)
以下是我为上述问题所做的工作。我正在使用Windows 10 os和python 3.6.5
打开命令提示符并键入命令“pip install graphviz”
转到我的电脑(这台电脑)并使用关键字“graphviz”进行搜索
打开graphviz文件夹并复制其路径并将其保存在记事本中
在graphviz中查找bin文件夹并通过鼠标右键单击复制文件夹
现在再次回到我的电脑并搜索“pydotplus”
显示名为 pydotplus 的文件夹。打开它并粘贴您之前复制的bin文件夹(Graphviz)的副本
前往控制面板&gt;系统和安全&gt;系统设置&gt;高级设置&gt; <环境变量>添加新路径
添加您在记事本中复制的路径,然后点击一系列“ok”
现在你可以享受使用graphviz
了答案 14 :(得分:1)
在此处安装Graphviz并添加其bin路径解决了我的问题
https://graphviz.gitlab.io/_pages/Download/Download_windows.html
pip安装Graphviz本身似乎不够
答案 15 :(得分:1)
在“ pydot.py”(位于... \ Anaconda3 \ Lib \ site-packages中)中,替换:
def get_executable_extension():
# type: () -> str
if is_windows():
return '.bat' if is_anacoda() else '.exe'
else:
return ''
具有:
def get_executable_extension():
# type: () -> str
if is_windows():
return '.exe'
else:
return ''
当系统是“ Windows / Anaconda”与“ Windows”,并且可能没有与“ .exe”关联的“ .bat”时,似乎没有任何理由添加“ .bat”。这似乎比为每个可执行pydot调用添加一个“ .bat”更好。
答案 16 :(得分:0)
在完成所有的graphviz安装之后,将其添加到环境变量的PATH中,您需要添加以下两行:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
答案 17 :(得分:0)
我用conda安装python-graphviz 然后 康达安装pydot 接着 康达安装pydot加 然后它起作用了。
所以:
conda install python-graphviz
conda install pydot
conda install pydotplus
答案 18 :(得分:0)
在Anaconda发行版上,pip安装不起作用。我先做过pip uninstall graphviz
,pip uninstall pydot
,然后依次做过conda install graphviz
和conda install pydot
,然后就可以了!
答案 19 :(得分:0)
该解决方案很简单,您只需从here下载并安装Graphviz。
然后将路径变量设置为bin目录,在我的情况下为C:\Program Files (x86)\Graphviz2.38\bin
。最后,执行conda install python-graphviz
,它应该可以正常工作。
答案 20 :(得分:0)
如果您不想弄乱路径变量(例如,如果您不是管理员)并且在Windows上工作,则可以执行以下操作来为我解决问题。
在编辑器中打开graphviz.py
(可能位于...Anaconda\pkgs\graphviz***\Library\bin
中)。如果找不到它,则可以通过错误消息将其打开。
转到功能__find_executables
并替换:
elif os.path.exists(os.path.join(path, prg + '.exe')):
if was_quoted:
progs[prg] = '"' + os.path.join(path, prg + '.exe') + '"'
else:
progs[prg] = os.path.join(path, prg + '.exe')
使用
elif os.path.exists(os.path.join(path, prg + '.bat')):
if was_quoted:
progs[prg] = '"' + os.path.join(path, prg + '.bat') + '"'
else:
progs[prg] = os.path.join(path, prg + '.bat')
答案 21 :(得分:0)
有关graphviz的一些知识:
示例:
# Just in case, try the default...
path = r"C:\Program Files (x86)\Graphviz2.38\bin"
答案 22 :(得分:0)
您可以使用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文件将无法工作。
答案 23 :(得分:0)
我没有使用Windows机器,我在Linux平台上。我在使用python包pyAgrum绘制贝叶斯网络的上下文中遇到了这个可执行文件未找到的问题。 pyAgrum使用graphviz绘制网络。我在python 3.6.4环境中使用anaconda平台安装了pyagrum和graphviz(即conda install <package name>
)。
我在/conda/envs/<environment name>/bin
目录中找到了可执行文件。所以,这只是让我的笔记本内核找到它们的问题。
如果您import os
,请使用命令os.environ['PATH'].split(os.pathsep)
查看您的环境正在查看的可执行路径。如果包含graphviz可执行文件的路径不在其中,您可以通过执行以下操作添加它:os.environ['PATH'] += os.pathsep + <path to executables>
。
我想这个解决方案可以在我的上下文之外工作。此解决方案的主要缺点是每次重新启动内核时都需要执行此操作。
答案 24 :(得分:0)
尝试了所有解决方案/发布/博客中描述的所有安装顺序,最终意识到anaconda无法读取环境变量。封闭的蟒蛇和Spyder。然后在管理员模式下打开Anaconda(在Windows 64位操作系统机器上),然后打开Spyder。 PYDOT调用脚本运行良好。
答案 25 :(得分:0)
我有这个问题并注意到它是用两组双引号打印我的PATH。我通过在1959年的第1959行添加以下内容解决了这个问题:
C:\Anaconda\Lib\site-packages\pydot.py
self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])
显然不是最好的解决方案,但它让我度过了一天。