(Python) ValueError: Program dot not found in path

2019-01-18 04:43发布

I have the following problem: I am on xUbuntu OS and I am trying to use networkx in a Flask application, and I am having the following code:

.....
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')

The last line is line 411. I get the following error:

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.

What could be causing this problem? I've installed networkx and pygraphviz, but I still get this error. Any ideas how to solve this problem?

4条回答
We Are One
2楼-- · 2019-01-18 05:03

PyGraphviz doesn't work without Graphviz. Install that too.

查看更多
家丑人穷心不美
3楼-- · 2019-01-18 05:15

In SUSE linux:

sudo zypper install graphviz

might help.

查看更多
4楼-- · 2019-01-18 05:23

If you have Anaconda installed the simplest way to go about this is to run the following from CMD:

conda install pydot-ng

and:

conda install graphviz

This takes care of adding dot to the path.

查看更多
迷人小祖宗
5楼-- · 2019-01-18 05:26

Make sure Graphviz is installed through the Windows installer (can be downloaded from http://www.graphviz.org/Download_windows.php).

Then add the path of the bin fold to the system variable "Path". It is "dot.exe" in bin fold that is looked for by pygraphviz.

It does not work if you pip install graphviz.

查看更多
登录 后发表回答