由于Windows没有正式版本 ,所以我试图自己构build它,但是它不能编译。 我不是第一个 面对这个问题 ,但我找不到答案。
这是控制台输出:
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++
任何帮助,将不胜感激!
这里是在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文件夹
请享用!
我感谢这可能是一个过时的线程,但为了更新它的其他人目前击中这堵墙,在Christoph Gohlke 非官方Windows二进制文件的Python扩展包的安装程序刚刚为我工作..
我今天刚刚遇到同样的问题。 这不是一个答案,但我读了他们的常见问题 :
问:
如何在Windows下编译pygraphviz? 为什么不分发pygraphviz Windows安装程序?
A:
我们没有Windows开发机器,但希望pygraphviz可以在所有平台上工作。 如果您在Windows上获得成功,或愿意帮助测试和分发Windows安装程序,请给我们留言。
另见票证67: https : //networkx.lanl.gov/ticket/67
这一连同在各种论坛,邮件列表和新闻组上的多个无人问津的请求,让我相信在Windows上运行PyGraphviz并不是简单的事。
所以我做了下一个明显的事情(*),并在VirtualBox之上启动了我的Ubuntu,用Python创建Graphviz图表。 奇怪的是,它也无法从Ubuntu上安装,除非你已经从源代码安装Graphviz,但是可以使用sudo apt-get python-pygraphviz
从预sudo apt-get python-pygraphviz
软件包安装。
所以现在我是一个快乐的pygraphviz用户。 或者至少90%高兴。 PGV在Python 2.6上显示了一个os.popen3
弃用警告,并且在这个问题上有一个补丁的18个月的票据还没有被合并。 哎呀!
(*)我最近做的越来越多了…
如果您在setup.py的第147行的扩展字典中删除了“runtime_library_dirs”参数,则错误消息将消失。 但是,它找不到cgraph.lib。 如果你改变你的设置
library_path=r'C:\Program Files\Graphviz2.26.3\lib\debug\lib'
一切顺从和安装。 你可以导入这些模块,但是当你尝试访问任何东西的时候,它会被炸毁。 在查看GraphViz的源代码时,看起来windows版本是C#/ .net – 也许这是我们问题的根源?
帽子同样的问题,我终于得到它的工作! 问题实际上是在Python的msvc9compiler.py(是的,你也需要VS8的vc9编译)。 错误出现在函数runtime_library_dir_option()的第698行。 让它返回与library_dir_option()相同的字符串,而不是抛出错误:
def runtime_library_dir_option(self, dir): return "/LIBPATH:" + dir
然后编译,它应该工作。
或者,您可以尝试使用easy_install
并避免编译。 我安装了“分发”,easy_install的一个分支。 但是它也需要pkg-config,而且你必须编译它或者得到一个较老的版本。 此外,您还必须将pkg-config添加到应用程序路径。
我设法在windows下编译pygraphviz,使用以下设置:
Windows 7,WinPython-32bit-2.7.6.3,Graphviz2.38,microsoft visual c ++ 2008 express edition,pygraphvize 1.3 dev
在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模块。
希望这有助于。
这适用于我,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