我看到很多关于正确安装pygraphviz
和graphviz
在 Windows for Python 2.7 上的困难的问题。但是我找到的答案没有解决我的问题。这是我所做的:
- 我首先使用非官方 Windows 二进制文件安装了 pygraphviz,此链接位于我的 anaconda (python) 文件夹 (
C:\Users\chamar\AppData\Local\Continuum\Anaconda
) - 下载 graphviz-2.36.msi 并安装在默认路径下
C:\Program Files (x86)\Graphviz2.36
Python中的命令import pygraphviz
有效。但是当我想使用说这个功能时,nx.graphviz_layout
我得到了raise ValueError("Program %s not found in path."%prog)
可能导致此问题的原因是pygraphviz
无法找到graphviz
. 现在,由于我pygraphviz
使用非官方的 Windows 二进制文件安装,我可以修改哪个文件来链接 thelibrary
和include
forgraphviz
的路径?当您不使用非官方二进制文件时,setup.py
您通常会在pygraphviz
和library
路径中找到。include
更新 1
我在文件夹 GRAPHIZ 下添加PATH
了Regedit
一个SOFTWARE
新的key
(默认)值C:\Program Files (x86)\Graphviz2.36\bin
更新 2
我在pydot.py
文件中遇到关于 Python 定位 Graphviz 路径的困难的错误。我进行了如下更改:
def _graphviz():
if os.sys.platform == 'win32':
path = r"C:/Program Files (x86)/Graphviz2.36/bin/"
progs = __find_executables(path)
return progs
find_graphviz()
{'fdp': 'C:/Program Files (x86)/Graphviz2.36/bin/fdp.exe', 'twopi': 'C:/Program Files (x86)/Graphviz2.36/bin/twopi.exe', 'neato': 'C:/Program Files (x86)/Graphviz2.36/bin/neato.exe', 'dot': 'C:/Program Files (x86)/Graphviz2.36/bin/dot.exe', 'circo': 'C:/Program Files (x86)/Graphviz2.36/bin/circo.exe'}
这对我来说似乎没问题,但是当我执行时说:
positions = nx.graphviz_layout(G, prog='twopi', root=0)
我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\networkx\drawing\nx_agraph.py", line 229, in graphviz_layout
return pygraphviz_layout(G,prog=prog,root=root,args=args)
File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\networkx\drawing\nx_agraph.py", line 264, in pygraphviz_layout
A.layout(prog=prog,args=args)
File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1305, in layout
data=self._run_prog(prog,' '.join([args,"-T",fmt]))
File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1251, in _run_prog
runprog=r'"%s"'%self._get_prog(prog)
File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1239, in _get_prog
raise ValueError("Program %s not found in path."%prog)
ValueError: Program twopi not found in path.
为什么?