在Windows上安装pygraphviz

时间:2010-12-31 16:12:02

标签: windows failed-installation pygraphviz

在我的Windows 7 Ultimate 64bit上安装最新的graphviz(2.26.3)后,收到以下错误:

  

C:> easy_install pygraphviz正在搜索   for 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:\用户\乔纳森\应用程序数据\本地\ TEMP \ easy_install的-apywwk \ pygraphviz-1.1.dev1947 \蛋DIST-TMP的nvd0pa   尝试pkg-config无法找到   pkg-config尝试使用dotneato-config   找不到dotneato-config

     

您的graphviz安装无法安装   被发现。

     

缺少graphviz包   on incomplete(二进制包   graphviz-dev或graphviz-devel   丢失?)。

     

如果您认为您的安装是   正确你需要手动   更改include_path和   setup.py中的library_path变量   指向你的正确位置   graphviz安装。

     

library_path的当前设置   include_path是:library_path = None   的include_path =无

     

错误:无

有任何想法如何解决这个问题? 这似乎与一个described here不同。

5 个答案:

答案 0 :(得分:5)

这对我有用。 前提条件:安装mingw32(如果你使用的话,包含在pythonxy distrib中),Graphviz

1)下载pygraphviz来源

2)编辑setup.py以将路径改为smth,如

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。与libs链接对我不起作用。

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文件夹中

享受!

答案 1 :(得分:3)

for windows 64-bit:

类似于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

答案 2 :(得分:1)

PyGraphviz使用C语言扩展模块(由SWIG生成)。所以你需要一个编译器来构建扩展。您可能需要构建Python可执行文件的相同编译器。

此问题中有一些信息Building Python C extension modules for Windows

以及http://www.swig.org/Doc1.3/Python.html#Python_nn12

答案 3 :(得分: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

答案 4 :(得分:1)

一个老问题,但我刚刚完成了这个,并且找不到Python 3的具体答案,我没有必要做上面提到的一半的东西。所以这就是。我使用的是Win7 64位,64位Python3.4并使用虚拟环境。我用它来使用django-extensions从django模型生成数据库原理图,非常有用!

  1. 从graphviz Graphviz site
  2. 下载graphviz-2.38.msi
  3. 安装msi(我使用带有管理员权限的cmd)

    msiexec /a graphviz-2.38.msi

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

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

  5. 然后我必须从this really useful site获取一个特定的Windows pygraphviz轮,特别是pygraphviz-1.3.1-cp34-none-win_amd64.whl

  6. 我有了这个,然后用pip / mingw32将它安装到我的虚拟环境

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

  7. 现在一切都很好。