【发布时间】:2014-05-07 01:16:06
【问题描述】:
我看到很多关于在 Windows 上为 Python 2.7 正确安装 pygraphviz 和 graphviz 的困难的问题。但是我找到的答案没有解决我的问题。这是我所做的:
- 我首先使用非官方 Windows 二进制文件安装了 pygraphviz
在我的 anaconda (python) 文件夹中使用这个 link (
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 的路径。现在,由于我使用非官方的 Windows 二进制文件安装了pygraphviz,我可以修改哪个文件来链接library 和include 以获得graphviz 的路径?当您不使用非官方二进制文件时,您通常会在pygraphviz 的library 和include 路径中找到setup.py。
更新 1
我在SOFTWARE 下的Regedit 中的PATH 中添加了一个带有新key(默认)的文件夹GRAPHIZ,其值为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.
为什么?
【问题讨论】:
-
geotheory 来自stackoverflow.com/questions/2798858/… 的评论为我解决了这个问题......它有效
-
当我添加时:
library_path=r"C:\Program Files (x86)\Graphviz2.36\bin" include_path=r"C:\Program Files (x86)\Graphviz2.36\include\graphviz"当我执行python setup.py build -c mingw32时,我总是得到错误Import error: No Module named Release
标签: python graphviz pygraphviz