(Python) ValueError: Program dot not found in path

╄→гoц情女王★ 提交于 2019-11-27 02:46:10

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!