2013-08-26 43 views
44

我在Windows 8中安裝了GraphViz 2.32,並已將C:\ Program Files(x86)\ Graphviz2.32 \ bin添加到System PATH變量。仍然pydot無法找到它的可執行文件。爲什麼pydot無法在Windows 8中找到GraphViz的可執行文件?

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但我無法讓問題迎刃而解。

回答

23

發生這種情況是因爲我在安裝pydot後安裝了graphviz。因此,pydot無法找到它。以正確的順序重新安裝解決了問題。

+0

其中'pydot'和GraphViz的安裝不會對是否'pydot'的差異可以找到GraphViz的順序。 GraphViz可執行文件應該位於當前路徑中,以便'pydot'能夠檢測到它們。 –

3

將dot.exe添加到您的路徑。 右鍵單擊我的電腦>高級系統設置>環境變量>高亮'路徑'>編輯 然後將引號中的所有內容附加到路徑「; C:\ Program Files(x86)\ Graphviz2.34 \ bin \」,具體取決於位置你安裝了Graphviz ofcourse,然後重新啓動python shell並輸入。

進口pydot pydot.find_graphviz() 確保有那麼它從文件夾中得到的一切後「本」斜線,我試着用了斜線和上面的代碼返回任何,但是在添加斜槓之後,它返回了它需要的graphviz可執行文件和它們的路徑。

+0

我在Windows 10中遵循了您的指示,但Windows並未將我的模塊路徑(即在谷歌驅動器中)添加到路徑列表中,即使它顯示在窗口中。檢查路徑是否實際添加到路徑列表的一種方法是打開新終端並運行「路徑」。 –

0

我有這個問題,並注意到它在打印時我的道路有兩套雙引號的。我工作圍繞這一問題通過添加以下到1959行:

C:\Anaconda\Lib\site-packages\pydot.py 

self.progs[prog] = os.path.normpath(self.progs[prog][1:-1]) 

顯然不是最好的修復,但它讓我度過每一天。

44

的問題是,對GraphViz的路徑沒有被pydot模塊發現如圖回溯:找不到

「的GraphViz \的可執行文件」

我解決了這個問題在我的Windows 7機器上添加GraphViz bin目錄到我的電腦的PATH。然後重新啓動我的Python IDE以使用更新的路徑。

  1. 安裝GraphViz的,如果你還沒有準備好(我用的是MSI下載)
  2. 獲取gvedit.exe路徑(對我來說,這是「C:\ Program Files文件 (x86)的\ Graphviz2.34 \ BIN \「)
  3. 添加這個路徑到計算機的PATH去環境設置來設置你的路徑
  4. 一種方法是單擊每個這些鍵/菜單選項:開始 - >計算機>系統 特性 - >高級設置 - >環境變量
  5. 點擊編輯用戶路徑
  6. 將此字符串添加到變量值列表的末尾(包括 分號):; C:\ Program Files(x86)\ Graphviz2。34 \ BIN
  7. 單擊確定
  8. 重新啓動你的Python IDE
+1

在我的Windows 8系統,直到我意識到,在Windows 8中,我不應該使用的路徑周圍的引號(「)我得到的錯誤。取出之後,一切都很好。 – srodriguex

7

你需要從Graphviz安裝,然後只需添加你安裝的Graphviz及其bin目錄下的系統環境路徑文件夾的路徑。

46

在Mac上brew install graphviz爲我解決了這個問題。

+7

這對我沒有工作,只是讓你們大家知道。 – samthebrand

+0

爲我工作!謝謝! – Mikebarson

6

我試圖通過控制面板中添加路徑,但重新啓動還需要在命令提示符。下面的方式也適用於在筆記本電腦會話更新的路徑,但不退出:

import os  

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

您不必重新啓動整個計算機,只是你要使用的程序。這可能是你正在運行筆記本服務器的命令提示符 – danio

1

在Windows中,即使安裝的graphviz-2.38.msi後,您可以在pydot.py添加自己的路(下站點包中發現文件夾)

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. 
+0

我應該注意到你指出的else子句並沒有總是到達,所以我在'find_grapviz()'開頭添加了顯式路徑。當然,但是我在試圖讓事情運行的時候浪費的時間太浪費了,所以這實際上是很好的破解。 – dmitry

2

我也有同樣的問題,我終於通過看看圖書館來解決它。

庫認爲使路徑設定爲C:\ Program Files文件\ ATT \的Graphviz \ BIN默認值,但通過的Graphviz安裝到C:\程序文件(x86)\的Graphviz經歷32位標準因此pydot無法獲得所需的路徑。 只需按照腳本的要求移動目錄,您就可以輕鬆前往。參考:考慮對環境變量進行等效更改。我們也檢查Graphviz是直接在Program Files(x86)下面還是在ATT下面。

1

對我來說:(Win10,Anaconda3) 確保你已經做了 「暢達安裝graphviz的」

我一定要添加到路徑:C:\ Users \用戶名\ Anaconda3 \圖書館\ BIN \ graphviz的

要修改PATH進入控制面板>系統和安全>系統>高級系統設置>環境變量>路徑>編輯>新建

一定要重新啓動您的IDE在此之後。 它應該工作

4

對於windows 8.1 &蟒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'

+1

This so爲我放了它。注意:由於已運行的應用程序可能不會自動適應更新後的環境,因此應該重新啓動任何需要新路徑的應用程序(請參閱[如何在不重新啓動的情況下添加Windows環境變量](https://serverfault.com/questions/ 8855 /怎麼辦,你加-A-Windows的環境變量,而無需重起的))。 – SND

0

嘗試了所有解決方案/ posts/blogs中描述的所有安裝順序,最終實現anaconda無法讀取環境變量。關閉的蟒蛇和Spyder。然後以管理員模式(在Windows 64位操作系統計算機上)打開Anaconda,然後打開Spyder。腳本在PYDOT調用中運行良好。

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>

我想這個解決方案將我的背景之外工作。此解決方案的主要缺點是每次重新啓動內核時都需要執行此操作。

相關問題