2017-02-14 61 views
0

我安裝了graphviz 2.38.0-4。此錯誤消息仍然顯示:從這裏安裝graphviz和pydotplus後未找到IPython 3.5 GraphViz的可執行文件

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

您是否安裝了graphviz exes?它們與Python庫分開。 – benjamin

+0

@Yah,http://www.graphviz.org/ –

回答

0

我剛碰到同樣的問題。事實證明,Anaconda上的'graphviz'(至少在Windows上)與PyPI上的graphviz軟件包不同,即它不是Graphviz的Python包裝器,而是Graphviz二進制文件本身。 Conda將二進制文件安裝在「Library \ bin」文件夾中(例如,在我的情況下爲「C:\ Anconda3 \ Library \ bin」)。通常情況下,這很好,因爲默認情況下「Library \ bin」在系統路徑中。但是,anaconda-graphviz軟件包會將graphviz二進制文件放入它們自己的子目錄「Library \ bin \ graphviz」 - 「Library \ bin」中有一個批處理文件'dot.bat',將調用重定向到「Library \ bin \ graphviz \ dot.exe」。所以像'twopi'這樣的二進制文件默認不在路徑上。但至少pydotplus(我測試的唯一一個)期望它們是;或者它會在Windows註冊表中查找「傳統」Graphviz安裝,如果失敗,則在默認安裝位置(%PROGRAMFILES%下)中查找。

所以我看到兩種解決方案:要麼直接從graphviz.com安裝Graphviz。由於我想保留通過'conda'更新'graphviz'的能力,我改用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())