我安装了graphviz 2.38.0-4。此错误消息仍显示:
C:\Users\username\AppData\Local\Continuum\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's executables are not found (Python 3.4) 仍然无法解决问题。
答案 0 :(得分:2)
我遇到了同样的问题。事实证明,' graphviz'在Anaconda上(至少在Windows上)与PyPI上的graphviz包不同,即它不是graphviz的Python包装器,而是Graphviz二进制文件本身。 Conda将二进制文件安装在" Library \ bin"文件夹(例如,在我的情况下," C:\ Anconda3 \ Library \ bin")。通常这样就可以了。" Library \ bin"默认情况下位于系统路径上。但是anaconda-graphviz包将graphviz二进制文件放在他们自己的子目录中#Library; Library \ bin \ graphviz" - 在" Library \ bin"中有批处理文件' dot.bat'将呼叫重定向到" Library \ bin \ graphviz \ dot.exe"。所以二元组如“twopi”等。默认情况下不在路径上。但至少pydotplus(我测试的唯一一个)期望它们是;或者它寻找一个"遗产" Graphviz安装在Windows注册表中,如果失败,则安装在默认安装位置(在%PROGRAMFILES%下)。
所以我看到两个解决方案:要么直接从graphviz.com安装Graphviz。因为我想保留更新“graphviz”的能力。通过' conda',我改为使用pydotplus' set_graphviz_executables'覆盖可执行文件的路径。但是,据我所知,每个图表都必须重做:
import os
def conda_fix(graph):
path = os.path.join(sys.base_exec_prefix, "Library", "bin", "graphviz")
paths = ("dot", "twopi", "neato", "circo", "fdp")
paths = {p: os.path.join(path, "{}.exe".format(p)) for p in paths}
graph.set_graphviz_executables(paths)
graph = pydotplus.graph_from_data(data)
conda_fix(graph)
Image(graph.create_png())