问题
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?
回答1:
PyGraphviz doesn't work without Graphviz. Install that too.
回答2:
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.
回答3:
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.
回答4:
In SUSE linux:
sudo zypper install graphviz
might help.
来源:https://stackoverflow.com/questions/13987353/python-valueerror-program-dot-not-found-in-path