2010-05-09 19 views
18

Hat jemand PygraphViz unter Windows erfolgreich installiert?PygraphViz unter Windows installieren, Python 2.6

Da es keine offizielle release for Windows gibt, versuche ich es selbst zu bauen, aber es kompiliert nicht. Ich bin nicht der first one zu face this issue, aber ich konnte keine Antwort finden. Diese

ist die Konsolenausgabe:

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++ 

Jede mögliche Hilfe würde geschätzt!

+0

Ich habe genau das gleiche Problem. Python2.6 unter Windows Server 2008 R2 mit PygraphViz 0.99.1 und graphviz 2.26.3. Irgendwelche Ideen ... irgendjemand? – inspectorG4dget

Antwort

3

Hier ist, was für mich in Python 2.7 funktionierte. Ich nehme an, dass es in Python 2.6 ähnlich funktionieren sollte. Voraussetzung: Installieren mingw32 (in pythonxy distrib enthalten, wenn Sie es verwenden), Graphviz

1) Laden Sie pygraphviz Quellen

2) bearbeiten setup.py auf Pfade ändern smth wie

library_path=r"c:\Program Files (x86)\Graphviz 2.28\bin" 
include_path=r"c:\Program Files (x86)\Graphviz 2.28\include\graphviz" 

Beachten Sie, dass es \ bin, nicht \ lib ist. Die Verknüpfung mit libs funktionierte nicht für mich.

3) laufen python setup.py build -c mingw32

Ergebnis Schritt 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) kopieren Sie das Ergebnis aus dem gerade gebaut lib.win32-2.7 (Einzel Unterordner pygraphviz) in Ihrer Python-Website genannt -Packages Ordner

Viel Spaß!

+0

Wie hast du MinGW32-xy installiert?Ich benutze MinGW Minimalist GNU für Windows und ich habe Probleme damit. Wenn ich versuche, pygraphviz zu installieren, bekomme ich diesen Fehler: cc1.exe: Fehler: unerkannte Befehlszeilenoption '-mno-cygwin'. – Seitaridis

+0

Ich erinnere mich nicht, aber ich denke, es war Teil der Pythonxy-Distribution. –

+3

mingw32 mit gcc 4.6.x wird aufgrund der fehlenden -mno-cygwin nicht mit Python 2.7.2 distutils arbeiten. Es ist ein bekanntes Python-Kernproblem. ptyhonxy wird mit 4.5.x ausgeliefert. –

4

Ich habe gerade selbst das gleiche Problem heute gerannt. Es ist nicht viel von einer Antwort, aber ich lese in ihren 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

Dies, zusammen mit mehrer unbeantwortet Bitte um Hilfe auf verschiedenen Foren, Mailinglisten und Newsgroups, führen mich zu glauben, dass PyGraphviz unter Windows ist nichts, was heute einfach gemacht werden kann.

Also tat ich die nächste offensichtliche Sache (*) und feuerte mein Ubuntu auf VirtualBox auf, um Graphviz Graphen mit Python zu erstellen. Seltsamerweise kann es auch nicht von der Quelle auf Ubuntu installiert werden, es sei denn, Sie haben Graphviz selbst von der Quelle installiert, aber es kann von einem vorgefertigten Paket mit sudo apt-get python-pygraphviz installiert werden.

So jetzt bin ich ein glücklicher pygraphviz Benutzer. Oder mindestens 90% glücklich. PGV zeigt eine os.popen3 Verwarnungswarnung für Python 2.6 und eine 18-month-old ticket mit einem Patch für dieses Problem wurde noch nicht aufgenommen. Argh!

(*) Ich mache es mehr und mehr in letzter Zeit ...

+2

Eigentlich sehen Sie sich den festen Code unter https://networkx.lanl.gov/trac/changeset/1073/pygraphviz/trunk/pygraphviz/agraph.py Anscheinend ist die Version von pygraphviz, die Sie installiert haben, älter als das Update. Sie können die neueste Version unter /http://networkx.lanl.gov/download/pygraphviz/ – Aric

1

Wenn Sie die ‚runtime_library_dirs‘ Parameter aus dem Wörterbuch Erweiterung entfernen in der Linie 147 in setup.py, Ihre Fehlermeldung weggeht. Es kann jedoch cgraph.lib nicht finden. Wenn Sie Ihre Einstellungen zu

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

ändern alles entspricht und installiert. Sie können die Module importieren, aber in dem Moment, in dem Sie versuchen, auf irgendetwas zuzugreifen, bombardiert es. Beim Betrachten der Quelle für GraphViz scheint es, dass die Windows-Version C# /. NET ist - vielleicht ist das die Quelle unserer Probleme?

0

Alternativ können Sie versuchen, easy_install zu verwenden und kompilieren zu vermeiden. Ich habe "distribute" installiert, eine Gabel von easy_install. Aber es erfordert auch pkg-config, und Sie müssen entweder das kompilieren oder eine ältere Version bekommen. Außerdem müssen Sie pkg-config dem Anwendungspfad hinzufügen.

+1

Das funktioniert nur, wenn sie eine easy_installable-Version für Windows liefern, die es klingt wie sie nicht. Obwohl dieser Beitrag von Mai ... – Falmarri

1

Hat das gleiche Problem und ich habe es endlich zur Arbeit gebracht! Das Problem war tatsächlich in Pythons msvc9compiler.py (ja, du musst VS8's vc9 auch kompilieren). Der Fehler kommt in Zeile 698 in der Funktion runtime_library_dir_option(). des Habens es stattdessen einen Fehler melden, haben sie die gleiche Zeichenfolge wie library_dir_option zurückkehren():

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

Dann kompilieren und es sollte funktionieren.

17

Ich schätze dies mittlerweile ein veralteter Faden sein kann, aber es für andere zu aktualisieren derzeit diese Wand schlagen, Unofficial Windows Binaries for Python Extension Packages der Installateur bei Christoph Gohlke ist für mich gerade gearbeitet ..

+0

+100: Danke. – Oddthinking

+0

+100000 danke. – user2543622

+0

Ich konnte das nicht zur Arbeit bringen. Ran graphviz-2.38.msi führte dann pygraphviz-1.2.win32-py2.7.exe aus. Erhalten Sie immer noch den Importfehler 'erfordert pygraphviz' – SwimBikeRun

0

I pygraphviz unter Windows kompilieren verwaltet mit folgendem Aufbau:

Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, Microsoft Visual C++ 2008 Express Edition, pygraphvize 1.3 dev

in setup.py änderte die Zeilen 35 und 36 in:

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

Die Kompilierung funktioniert und Sie erhalten ein funktionierendes pygraphviz Python-Modul.

Hoffnungen das hilft.

+0

Ich habe die gleiche Sache, aber es wirft eine Reihe von Linkage-Fehler, weißt du, wie man es beheben? – ascetic652

0

Das funktioniert für mich, Python 2.7 32 Bit, PyGraphViz 2.38, VCForPython27, Windows 10 64 Bit.

Zuerst installieren Sie VCForPython27, siehe http://aka.ms/vcpython27. Geben Sie dann folgenden Befehl ein, damit distutils.msvc9compiler den VC-Compiler finden kann. (Dieser Administratorrechte benötigt. Und wenn Ihr Windows 32 Bit ist, müssen Sie den Registrierungsschlüssel ändern.)

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 

Schließlich installieren PyGraphViz.

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