在Windows上安装pygraphviz

4
在我的Windows 7 Ultimate 64位系统上安装了最新的graphviz(2.26.3)之后,我收到了以下错误提示:
C:>easy_install pygraphviz 搜索pygraphviz,正在查找... 阅读http://pypi.python.org/simple/pygraphviz/ 阅读http://networkx.lanl.gov/pygraphviz 阅读http://networkx.lanl.gov/wiki/download 阅读http://networkx.lanl.gov/download/pygraphviz 阅读http://sourceforge.net/project/showfiles.php?group_id=122233&package_id=161979 阅读http://networkx.lanl.gov/download 最佳匹配项: pygraphviz 1.1.dev1947 正在下载http://networkx.lanl.gov/download/pygraphviz/pygraphviz-1.1.dev1947.tar.gz 处理pygraphviz-1.1.dev1947.tar.gz 运行pygraphviz-1.1.dev1947\setup.py -q bdist_egg --dist-dir c:\users\jonathan\appdata\local\temp\easy_install-apywwk\pygraphviz-1.1.dev1947\egg-dist-tmp-nvd0pa 尝试pkg-config,未能找到pkg-config 尝试dotneato-config,未能找到dotneato-config 无法找到您的graphviz安装包。 可能是graphviz包丢失或不完整(二进制包graphviz-dev或graphviz-devel丢失)。 如果您认为已正确安装,则需要手动更改setup.py中的include_path和library_path变量,以指向您的graphviz安装的正确位置。 library_path和include_path的当前设置为:library_path=None include_path=None 错误:None

你有什么想法来解决这个问题吗?
这似乎是一个不同于这里描述的问题。
有人在Windows上安装pygraphviz方面取得了成功吗?如何操作?


1
我按照这些指示的步骤成功在我的机器上安装了pygraphviz。 - Seitaridis
我已经完成了并在这里给出了我的步骤: https://dev59.com/8FcO5IYBdhLWcg3w5lUM#45362845 - darkhipo
你可以下载它:https://github.com/CristiFati/Prebuilt-Binaries(https://dev59.com/8FcO5IYBdhLWcg3w5lUM#54890705)。 - CristiFati
5个回答

5
这是我所做的有效方法。 前提条件:安装mingw32(如果使用pythonxy发行版,则已包含在内),Graphviz
1)下载pygraphviz源代码
2)编辑setup.py以更改路径,例如:
library_path=r"c:\Program Files (x86)\Graphviz 2.28\bin"
include_path=r"c:\Program Files (x86)\Graphviz 2.28\include\graphviz"

请注意,应该使用\bin而不是\lib。我尝试过链接库但没有成功。
3) 运行python setup.py build -c mingw32 步骤3的结果:
c:\Python27\Lib\site-packages\pygraphviz-1.1>python setup.py build -c mingw32
library_path=c:\Program Files (x86)\Graphviz 2.28\bin
include_path=c:\Program Files (x86)\Graphviz 2.28\include\graphviz
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\MinGW32-xy\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-Ic:\Program Files (x86)\G
raphviz 2.28\include\graphviz" -Ic:\Python27\include -Ic:\Python27\PC -c pygraph
viz/graphviz_wrap.c -o build\temp.win32-2.7\Release\pygraphviz\graphviz_wrap.o
pygraphviz/graphviz_wrap.c: In function 'agattr_label':
pygraphviz/graphviz_wrap.c:2855:5: warning: return makes integer from pointer wi
thout a cast
writing build\temp.win32-2.7\Release\pygraphviz\_graphviz.def
C:\MinGW32-xy\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\py
graphviz\graphviz_wrap.o build\temp.win32-2.7\Release\pygraphviz\_graphviz.def "
-Lc:\Program Files (x86)\Graphviz 2.28\bin" -Lc:\Python27\libs -Lc:\Python27\PCb
uild "-Wl,-Rc:\Program Files (x86)\Graphviz 2.28\bin" -lcgraph -lcdt -lpython27
-lmsvcr90 -o build\lib.win32-2.7\pygraphviz\_graphviz.pyd

4) 将刚构建的 lib.win32-2.7(只有一个名为 pygraphviz 的子文件夹)的结果复制到您的Python的 site-packages 文件夹中。

享受吧!


3

对于64位Windows:

类似于Andrew Filev所写的,但需要使用pythonxy,并且需要在不包含空格的文件夹中安装Graphviz(包括程序的根文件夹:“Graphviz 2.28” =>“Graphviz2.28”)

因此:

1)卸载Python 2.7

2)安装pythonxb(http://code.google.com/p/pythonxy/wiki/Downloads)

3)安装Graphviz 2.28(我测试过的唯一版本),确保安装路径中没有空格。一个好的例子是:“C:\Graphviz2.28”

4)将pygraphviz作为zip(源代码)下载并解压缩。

5)修改setup.py靠近顶部以使其具有

library_path=r"c:\Graphviz2.28\bin"
include_path=r"c:\Graphviz2.28\include\graphviz"

6) 运行命令:python setup.py build -c mingw32

7) 在看到这个结果后(比之前发布的那个更好):

>python setup.py build -c mingw32
library_path=c:\Graphviz2.28\bin
include_path=c:\Graphviz2.28\include\graphviz
running build
running build_py
running build_ext

将刚构建的 lib.win32-2.7 (只有一个名为 pygraphviz 的子文件夹)的结果复制到您的 Python 的 site-packages 文件夹中,您可能需要自己创建 + 将 pygraphviz 的新根文件夹绑定到环境变量 PYTHONPATH

例如,最终库可以位于此处:

C:\Python27\libs\site_packages\pygraphviz

1
一个老问题,但我刚刚做了这个并且找不到 Python 3 的具体答案,而且我不必做上面提到的一半事情。所以在这里。我正在使用 Win7 64位、64位 Python3.4 和虚拟环境。我使用它来使用 django-extensions 从 Django 模型生成数据库原理图,非常有用!
  1. 从Graphviz网站Graphviz site下载graphviz-2.38.msi
  2. 安装msi(我使用了带管理员权限的cmd)

    msiexec /a graphviz-2.38.msi

  3. 由于某些原因,这不会将Graphviz添加到系统路径中,因此您需要手动添加。对我来说,是这样的

    SET PATH=%PATH%;C:\Program Files (x86)\Graphviz2.38\bin

  4. 然后,我需要从this really useful site获取特定的Windows pygraphviz wheel,具体来说是pygraphviz-1.3.1-cp34-none-win_amd64.whl

  5. 有了这个以后,我就使用pip/mingw32将其安装到我的虚拟环境中

    $ pip install pygraphviz-1.3.1-cp34-none-win_amd64.whl

现在一切都运行得很好。


1

1

我刚刚花了半个小时试图弄清楚为什么上面的答案对我不起作用,原来它们已经过时了,因为library_pathinclude_path不再是相关变量的名称。以下是在Windows 7、32位Python 2.7上为我工作的内容:

setup.py

library_dirs = r'C:\PROGRA~2\Graphviz2.38\bin'
include_dirs = r'C:\PROGRA~2\Graphviz2.38\include'

然后运行python setup.py build -c mingw32。保留HTML格式,不要解释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接