【问题标题】:Installing PygraphViz on Windows, Python 2.6在 Windows、Python 2.6 上安装 PygraphViz
【发布时间】:2011-02-17 10:29:44
【问题描述】:

有人在 Windows 上成功安装了 PygraphViz 吗?

由于没有官方的release for Windows,我尝试自己构建,但是编译失败。我不是first one 到face this issue,但我找不到答案。

这是控制台输出:

C:\Python26\Lib\site-packages\pygraphviz-0.99.1>c:\python26\python.exe setup.py
install
library_path=C:/Program Files/Graphviz2.26.3/lib/debug/dll
include_path=C:/Program Files/Graphviz2.26.3/include/graphviz
running install
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W
3 /GS- /DNDEBUG "-IC:/Program Files/Graphviz2.26.3/include/graphviz" -Ic:\python
26\include -Ic:\python26\PC /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win32-2.
6\Release\pygraphviz/graphviz_wrap.obj
graphviz_wrap.c
warning: I don't know what to do with 'runtime_library_dirs': ['C:/Program Files
/Graphviz2.26.3/lib/debug/dll']
error: don't know how to set runtime library search path for MSVC++

任何帮助将不胜感激!

【问题讨论】:

  • 我也有同样的问题。 Windows Server 2008 R2 上的 Python2.6,带有 PygraphViz 0.99.1 和 graphviz 2.26.3。有什么想法……有人吗?

标签: python c windows installation graphviz


【解决方案1】:

我今天自己也遇到了同样的问题。这不是一个答案,但我在他们的FAQ 中读到:

问:

如何编译pygraphviz下 视窗?你为什么不分发 pygraphviz Windows 安装程序?

答:

我们没有 Windows 开发 机器,但想拥有 pygraphviz 适用于所有平台。如果 您在 Windows 上取得了成功或将 愿意帮助测试和分发 Windows 安装程序请给我们一个 注意。

另见票 67: https://networkx.lanl.gov/ticket/67

这一点,再加上在各种论坛、邮件列表和新闻组上多次请求帮助,但未得到答复,让我相信在 Windows 上运行 PyGraphviz 并不是今天可以简单地完成的事情。

所以我做了下一个显而易见的事情 (*),并在 VirtualBox 之上启动了我的 Ubuntu,以使用 Python 创建 Graphviz 图形。奇怪的是,它也无法在 Ubuntu 上从源代码安装,除非您从源代码安装了 Graphviz 本身,但它可以从带有 sudo apt-get python-pygraphviz 的预构建包安装。

所以现在我是一个快乐的 pygraphviz 用户。或者至少 90% 的快乐。 PGV 在 Python 2.6 上显示了一个 os.popen3 弃用警告,而一个带有此问题补丁的 18-month-old ticket 仍未被合并。啊!

(*) 我最近越来越多...

【讨论】:

【解决方案2】:

如果您从 setup.py 第 147 行的 extension 字典中删除了“runtime_library_dirs”参数,您的错误消息就会消失。但是,它找不到 cgraph.lib。如果您将设置更改为

library_path=r'C:\Program Files\Graphviz2.26.3\lib\debug\lib'

一切都符合并安装。您可以导入模块,但是当您尝试访问任何内容时,它就会爆炸。在查看 GraphViz 的源代码时,Windows 版本似乎是 C#/.NET - 也许这就是我们问题的根源?

【讨论】:

    【解决方案3】:

    或者,您可以尝试使用easy_install 并避免编译。我安装了“distribute”,easy_install 的一个分支。但它也需要 pkg-config,您要么必须编译它,要么获取旧版本。此外,您还必须将 pkg-config 添加到应用程序路径。

    【讨论】:

    • 这只有在他们为 Windows 提供易于安装的版本时才有效,听起来他们没有。虽然这篇文章是 5 月发布的……
    【解决方案4】:

    遇到同样的问题,我终于解决了!问题实际上出在 Python 的 msvc9compiler.py 中(是的,你也需要 VS8 的 vc9 来编译)。错误出现在函数 runtime_library_dir_option() 的第 698 行。与其抛出错误,不如让它返回与 library_dir_option() 相同的字符串:

    def runtime_library_dir_option(self, dir):
        return "/LIBPATH:" + dir
    

    然后编译,它应该可以工作了。

    【讨论】:

      【解决方案5】:

      这就是在 Python 2.7 中对我有用的方法。我认为它应该在 Python 2.6 中类似地工作。 前提条件:安装mingw32(如果你正在使用它,包含在pythonxy distrib中),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 文件夹中

      享受吧!

      【讨论】:

      • 您是如何安装 MinGW32-xy 的?我正在为 Windows 使用 MinGW Minimalist GNU,但我遇到了问题。当我尝试安装 pygraphviz 时出现此错误:cc1.exe: error: unrecognized command line option '-mno-cygwin'。
      • 我不记得了,但我认为它是 pythonxy 发行版的一部分。
      • mingw32 与 gcc 4.6.x 不能与 Python 2.7.2 distutils 一起使用,因为缺少 -mno-cygwin。这是一个已知的 Python 核心问题。 ptyhonxy 仍然附带 4.5.x。
      • @Ηλίας,你解压源代码,它就在文件夹里
      【解决方案6】:

      我很欣赏这可能是一个过时的线程,但为了更新它以供其他目前遇到此问题的人使用,Christoph Gohlke 的Unofficial Windows Binaries for Python Extension Packages 的安装程序刚刚为我工作..

      【讨论】:

      • 我无法让它工作。运行 graphviz-2.38.msi 然后运行 ​​pygraphviz‑1.2.win32‑py2.7.exe。仍然得到导入错误'需要 pygraphviz'
      • 您是否已将您的 python 分发路径添加到您的环境变量中?如果是这样,您可能想提出一个新问题来解决。
      • +Inf,你是救命稻草
      【解决方案7】:

      我设法使用以下设置在 windows 下编译 pygraphviz:

      Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, microsoft visual c++ 2008 express edition, pygraphvize 1.3 开发版

      在 setup.py 中将第 35 和 36 行更改为:

      include_dirs = r"C:\Program Files\Graphviz2.38\include" library_dirs = r"C:\Program Files\Graphviz2.38\lib\release\lib"

      编译成功,你得到一个工作的 pygraphviz python 模块。

      希望这会有所帮助。

      【讨论】:

      • 我做了同样的事情,但是它抛出了一堆链接错误,你知道如何解决它吗?
      【解决方案8】:

      这对我有用,Python 2.7 32 位、PyGraphViz 2.38、VCForPython27、Windows 10 64 位。

      首先,安装VCForPython27,见http://aka.ms/vcpython27。

      然后,执行以下命令,让distutils.msvc9compiler可以找到VC编译器。 (这需要管理员权限。如果你的 Windows 是 32 位,你需要调整注册表项。)

      reg add HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\9.0\Setup\VC -v productdir -t REG_SZ -d "%LocalAppData%\Programs\Common\Microsoft\Visual C++ for Python\9.0" -f
      

      最后,安装 PyGraphViz。

      set INCLUDE=C:\Program Files (x86)\Graphviz2.38\include
      set LIB=C:\Program Files (x86)\Graphviz2.38\lib\release\lib
      pip install pygraphviz
      

      【讨论】:

        猜你喜欢
        • 2012-01-03
        • 2023-04-03
        • 2011-06-02
        • 2014-05-08
        • 2017-12-19
        • 2010-10-21
        • 1970-01-01
        • 2020-07-15
        相关资源
        最近更新 更多