2010-05-09 186 views
18

有沒有人在Windows上成功安裝PygraphViz?在Windows,Python 2.6上安裝PygraphViz

由於沒有官方release for Windows,我試圖自己構建它,但它無法編譯。我不是first oneface 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++ 

任何幫助,將不勝感激!

+0

我有完全相同的問題。 Windows Server 2008 R2上的Python2.6與PygraphViz 0.99.1和graphviz 2.26.3。任何想法...任何人? – inspectorG4dget 2010-05-24 23:24:33

回答

3

下面是在Python 2.7中爲我工作的東西。我認爲它應該在Python 2.6中以類似的方式工作。 前提條件:安裝的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。鏈接與庫不適合我。

3)運行步驟3中的python setup.py build -c mingw32

結果:

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的網站-packages文件夾

享受!

+0

你是如何安裝MinGW32-xy的?我使用MinGW Minimalist GNU for Windows,並且遇到問題。當我嘗試安裝pygraphviz時,出現以下錯誤:cc1.exe:error:無法識別的命令行選項'-mno-cygwin'。 – Seitaridis 2011-11-25 08:49:16

+0

我不記得了,但我認爲它是pythonxy發行版的一部分。 – 2011-12-01 20:06:02

+3

mingw32與gcc 4.6.x不會與Python 2.7.2 distutils一起工作,因爲缺少-mno-cygwin。這是一個已知的Python核心問題。 ptyhonxy仍與4.5.x一起發貨。 – 2012-01-01 13:16:42

4

我今天剛剛遇到同樣的問題。這不是太多的答案,但我在他們的FAQ閱讀:

Q:

How do I compile pygraphviz under Windows? And why don’t you distribute a pygraphviz Windows installer?

A:

We don’t have Windows development machines but would like to have pygraphviz work on all platforms. If you have success with Windows or would be willing to help test and distribute a Windows installer please drop us a note.

See also ticket 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

其實你正在查看固定代碼https://networkx.lanl.gov/trac/changeset/1073/pygraphviz/trunk/pygraphviz/agraph.py顯然你安裝的pygraphviz的版本比這個修補程序早。你可以在/http://networkx.lanl.gov/download/pygraphviz/ – Aric 2010-11-20 21:56:51

1

如果你在setup.py請從擴展詞典「runtime_library_dirs」參數上線147,你的錯誤消息消失。但是,它找不到cgraph.lib。如果您將設置更改爲

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

一切都符合並安裝。您可以導入這些模塊,但是當您嘗試訪問任何內容時,它會被炸燬。在查看GraphViz的源代碼時,看起來windows版本是C#/ .NET - 也許這是我們問題的根源?

0

或者,您可以嘗試使用easy_install並避免編譯。我安裝了「distribute」,這是easy_install的一個分支。但它也需要pkg-config,並且您必須編譯該文件或獲取較舊的版本。此外,您還必須將pkg-config添加到應用程序路徑。

+1

得到最新的版本。這隻有在它們提供了一個易於安裝的Windows版本時纔有效,聽起來好像它們沒有。雖然這篇文章是從五月... – Falmarri 2010-12-17 00:34:53

1

帽子有同樣的問題,我終於得到它的工作!問題實際上是在Python的msvc9compiler.py中(是的,你也需要VS8的vc9來編譯)。錯誤出現在函數runtime_library_dir_option()的第698行。讓它返回與library_dir_option()相同的字符串:

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

然後編譯,它應該工作。

17

我明白,這可能是現在一個過時的線程,但更新它爲他人當前打這堵牆,在克里斯托夫Gohlke的Unofficial Windows Binaries for Python Extension Packages安裝剛剛爲我工作..

+0

+100:謝謝。 – Oddthinking 2013-04-21 02:10:45

+0

+ 100000謝謝。 – user2543622 2014-03-28 23:43:47

+0

我無法得到這個工作。然後運行graphviz-2.38.msi然後運行pygraphviz-1.2.win32-py2.7.exe。仍然得到導入錯誤'需要pygraphviz' – SwimBikeRun 2014-04-30 02:37:14

0

我設法編譯在windows下pygraphviz具有以下設置:

Windows 7中, WinPython了32bit-2.7.6.3, Graphviz2.38, 微軟的Visual C++ 2008 Express版本, 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模塊。

希望這有助於。

+0

我做了同樣的事情,但它拋出了一堆連鎖錯誤,你知道如何解決它嗎? – ascetic652 2017-09-30 02:57:28

0

這適用於我,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