2010-05-09 3 views
18

Chiunque ha installato PygraphViz su Windows con successo?Installazione di PygraphViz su Windows, Python 2.6

Poiché non c'è un release for Windows ufficiale, sto provando a crearlo da solo, ma non riesce a compilare. Non sono il first one a face this issue, ma non sono riuscito a trovare una risposta.

Questa è l'uscita della console:

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

Qualsiasi aiuto sarebbe apprezzato!

+0

Ho lo stesso identico problema. Python2.6 su Windows Server 2008 R2 con PygraphViz 0.99.1 e graphviz 2.26.3. Qualche idea ... qualcuno? – inspectorG4dget

risposta

3

Ecco cosa ha funzionato per me in Python 2.7. Presumo che dovrebbe funzionare in modo simile in Python 2.6. Presupposto: Installare mingw32 (incluso nel pythonxy distrib se si sta usando), Graphviz

1) Scaricare fonti pygraphviz

2) Modifica setup.py per modificare i percorsi smth come

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

Si noti che è \ bin, non \ lib. Il collegamento con le librerie libere non ha funzionato per me.

3) gestita python setup.py build -c mingw32

Risultato del passo 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) copiare il risultato dal lib.win32-2.7 appena costruito (singolo sotto-cartella chiamata pygraphviz) nel tuo sito di Python -packages folder

Buon divertimento!

+0

Come hai installato MinGW32-xy?Sto usando MinGW Minimalist GNU per Windows e ho problemi con esso. Quando provo a installare pygraphviz viene visualizzato questo errore: cc1.exe: errore: opzione della riga di comando non riconosciuta '-mno-cygwin'. – Seitaridis

+0

Non ricordo, ma penso che fosse parte della distro pythonxy. –

+3

mingw32 con gcc 4.6.x non funzionerà con distroils Python 2.7.2 a causa della mancanza di -mno-cygwin. È un problema noto di Python. ptyhonxy viene fornito con 4.5.x ancora. –

4

Ho appena avuto lo stesso problema oggi stesso. E non è molto di una risposta, ma ho letto nella loro 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

Questo, insieme con più suppliche senza risposta di aiuto su vari forum, mailing list e newsgroup, mi portano a credere che in esecuzione su Windows PyGraphviz non è qualcosa che può essere fatto semplicemente oggi.

Così ho fatto la prossima cosa ovvia (*) e acceso la mia Ubuntu su VirtualBox per creare grafici Graphviz con Python. Curiosamente, non riesce a installare dal sorgente su Ubuntu, a meno che Graphviz stesso non sia installato dal sorgente, ma può essere installato da un pacchetto predefinito con sudo apt-get python-pygraphviz.

Quindi ora sono un felice utente di pygraphviz. O almeno il 90% felice. PGV mostra un avviso di deprecazione os.popen3 su Python 2.6 e un 18-month-old ticket con una patch su questo problema non è ancora stato incorporato. Argh!

(*) Io lo faccio sempre di più ultimamente ...

+2

In realtà stai guardando il codice fisso su https://networkx.lanl.gov/trac/changeset/1073/pygraphviz/trunk/pygraphviz/agraph.py A quanto pare la versione di pygraphviz che hai installato è più vecchia di quella correzione. Puoi ottenere l'ultima versione su /http://networkx.lanl.gov/download/pygraphviz/ – Aric

1

Se si rimuove il parametro '' runtime_library_dirs dal dizionario estensione in on line 147 nel setup.py, il messaggio di errore scompare. Tuttavia, non riesce a trovare cgraph.lib. Se si modificano le impostazioni su

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

tutto conforme e installazioni. È possibile importare i moduli, ma nel momento in cui si tenta di accedere a qualsiasi cosa, si bombarda. Guardando la fonte per GraphViz, sembra che la versione di Windows sia C# /. NET - forse questa è la fonte dei nostri problemi?

0

In alternativa, è possibile provare a utilizzare easy_install ed evitare la compilazione. Ho installato "distribute", un fork di easy_install. Ma richiede anche pkg-config e devi compilare quello o ottenere una versione precedente. Inoltre, devi anche aggiungere pkg-config al percorso dell'applicazione.

+1

Questo funziona solo se fornisce una versione di easy_install-able per Windows, che suona come se non fosse così. Anche se questo post è da maggio ... – Falmarri

1

Cappello lo stesso problema e finalmente l'ho fatto funzionare! Il problema era in realtà in msvc9compiler.py di Python (sì, è necessario compilare anche VS9 di vc9). L'errore arriva sulla riga 698 nella funzione runtime_library_dir_option(). Invece di avere esso genera un errore, fare tornare la stessa stringa come library_dir_option():

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

quindi compilare e dovrebbe funzionare.

17

apprezzo questo può essere un filo obsoleta ormai, ma di aggiornarlo per gli altri attualmente colpire questo muro, il programma di installazione a Christoph Gohlke di Unofficial Windows Binaries for Python Extension Packages ha appena lavorato per me ..

+0

+100: Grazie. – Oddthinking

+0

+100000 grazie. – user2543622

+0

Non sono riuscito a farlo funzionare. Ran graphviz-2.38.msi ha quindi eseguito pygraphviz-1.2.win32-py2.7.exe. Ancora ottieni l'errore di importazione 'require pygraphviz' – SwimBikeRun

0

sono riuscito a compilare pygraphviz sotto le finestre con la seguente configurazione:

Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, Microsoft C++ 2008 express edition visiva, pygraphvize 1.3 dev

in setup.py ha modificato le righe 35 e 36 a:

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

La compilazione funziona e si ottiene un modulo pygraphviz python funzionante.

Si spera che questo aiuti.

+0

Ho fatto la stessa cosa, ma genera un sacco di errori di collegamento, sai come risolverlo? – ascetic652

0

Questo funziona per me, Python 2.7 32 bit, PyGraphViz 2.38, VCForPython27, Windows 10 64 bit.

Prima di tutto, installare VCForPython27, vedere http://aka.ms/vcpython27.

Quindi, eseguire il seguente comando, in modo che distutils.msvc9compiler possa trovare il compilatore VC. (Questo deve privilegi di amministratore. E se il vostro Windows è a 32 bit, è necessario regolare la chiave di registro.)

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 

Infine, installare PyGraphViz.

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