web-dev-qa-db-ja.com

(Python)ValueError:プログラムドットがパスに見つかりません

次の問題があります:xUbuntu OSを使用していて、Flaskアプリケーションでnetworkxを使用しようとしていますが、次のコードがあります:

.....
import networkx as nx
......
# Creating and initializing graph object which is networkx object
hosts_graph = get_networkx_graph_object()

# Variable 'coord' where the coordinates for each node will be stored
coord = nx.pygraphviz_layout(hosts_graph, prog = 'dot')

最後の行は行411です。次のエラーが発生します。

File "/home/kiril/Documents/workfolder/omeganoc-sprint/onoc/omeganoc/grapher.py", line 411, in grouping_method
    coord = nx.pygraphviz_layout(hosts_graph, prog = 'dot')
  File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.Egg/networkx/drawing/nx_agraph.py", line 264, in pygraphviz_layout
    A.layout(prog=prog,args=args)
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz-1.1-py2.7-linux-x86_64.Egg/pygraphviz/agraph.py", line 1301, in layout
    data=self._run_prog(prog,' '.join([args,"-T",fmt]))
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz-1.1-py2.7-linux-x86_64.Egg/pygraphviz/agraph.py", line 1248, in _run_prog
    runprog=self._get_prog(prog)
  File "/usr/local/lib/python2.7/dist-packages/pygraphviz-1.1-py2.7-linux-x86_64.Egg/pygraphviz/agraph.py", line 1236, in _get_prog
    raise ValueError("Program %s not found in path."%prog)
ValueError: Program dot not found in path.

この問題の原因は何ですか? networkxとpygraphvizをインストールしましたが、それでもこのエラーが発生します。この問題を解決する方法はありますか?

15
Belphegor

PyGraphvizはGraphvizなしでは機能しません。それもインストールしてください。

Anacondaをインストールしている場合、これを実行する最も簡単な方法は、CMDから以下を実行することです。

conda install pydot-ng

そして:

conda install graphviz

これにより、パスにドットが追加されます。

7
Alona Levy

GraphvizがWindowsインストーラーからインストールされていることを確認します( http://www.graphviz.org/Download_windows.php からダウンロードできます)。

次に、ビンフォールドのパスをシステム変数「Path」に追加します。 pygraphvizが検索するのはbinfoldの「dot.exe」です。

Graphvizをpipインストールした場合は機能しません。

5
user6107173

SUSE linuxの場合:

Sudo zypper install graphviz

役立つかもしれません。

0
Susa