Python:pygraphviz和graphviz的安装问题

Plu*_*ug4 15 python graphviz pygraphviz

我看到很多关于正确安装pygraphvizgraphvizWindows for Python 2.7的问题.但我找到的答案都没有解决我的问题.这是我做的:

  • 我首先使用非官方的Windows二进制文件在我的anaconda(python)文件夹中使用此链接安装了pygraphviz ( C:\Users\chamar\AppData\Local\Continuum\Anaconda)
  • 下载graphviz-2.36.msi并将其安装在默认路径下 C:\Program Files (x86)\Graphviz2.36

import pygraphvizPython中的命令有效.但是,当我想用说,这功能nx.graphviz_layout我得到raise ValueError("Program %s not found in path."%prog)

可能导致此问题的原因是pygraphviz无法找到路径graphviz.现在,因为我pygraphviz使用非官方的Windows二进制文件安装,我可以修改哪个文件来链接libraryincludefor graphviz的路径?你会通常你找到setup.pypygraphvizlibraryinclude路径,当你不使用非官方的二进制文件.

更新1

我加入PATHRegeditSOFTWARE一个新的文件夹GRAPHIZ 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'}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎没问题,但是当我执行时说:

positions = nx.graphviz_layout(G, prog='twopi', root=0)
Run Code Online (Sandbox Code Playgroud)

我明白了:

    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.
Run Code Online (Sandbox Code Playgroud)

为什么?

Stu*_*que 13

以下是让pygraphviz为Python 3.4工作的步骤(我想如果你按照类似的步骤,它应该适用于Python 2.x).我只是在这里为将来的访问者记录它:

先决条件:

  1. wheel(默认情况下应该出现在较新的发行版中)
  2. pygraphviz的正确Windows版本(非官方版本).在Win7 x64上,我选择了"pygraphviz- $ version -cp34-none-win_amd64.whl".(注意cp34指示python版本.)
  3. Graphviz 安装程序版本2.38(上面的轮子是为其构建的)

脚步:

  1. 运行Graphviz安装程序
  2. 将Graphviz\bin文件夹添加到您的用户或系统PATH
  3. 检查:打开命令提示符并执行twopi -V.您应该能够看到打印到控制台上的Graphviz版本.
  4. 现在转到你的Python环境(例如通过运行anaconda.bat,你可以运行的提示python)
  5. pip install pygraphviz?*$version*-cp34?none?win_amd64.whl
  6. 你完成了 :) !运行示例脚本以查看是否一切顺利.