2010-05-09 15 views
18

¿Alguien ha instalado con éxito PygraphViz en Windows?Instalación de PygraphViz en Windows, Python 2.6

Dado que no hay un release for Windows oficial, estoy tratando de compilarlo yo mismo, pero no compila. No soy el first one al face this issue, pero no pude encontrar una respuesta.

Esta es la salida de la consola:

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

Cualquier ayuda se agradece!

+0

Tengo exactamente el mismo problema. Python2.6 en Windows Server 2008 R2 con PygraphViz 0.99.1 y graphviz 2.26.3. Alguna idea ... alguien? – inspectorG4dget

Respuesta

3

Esto es lo que funcionó para mí en Python 2.7. Supongo que debería funcionar de manera similar en Python 2.6. Condición previa: Instalar mingw32 (incluido en distrib pythonxy si se está usando), Graphviz

1) Descargar fuentes pygraphviz

2) Editar setup.py cambiar las rutas de SMTH como

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

Tenga en cuenta que es \ bin, not \ lib. La vinculación con libs no funcionó para mí.

3) ejecutar python setup.py build -c mingw32

Resultado paso 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) copiar el resultado de la lib.win32-2.7 acaba de construir (solo sub-carpeta llamada pygraphviz) en su sitio de Python -paquete de paquetes

¡Disfrútalo!

+0

¿Cómo instaló MinGW32-xy?Estoy usando MinGW Minimalist GNU para Windows y tengo problemas con él. Cuando trato de instalar pygraphviz obtengo este error: cc1.exe: error: opción de línea de comando no reconocida '-mno-cygwin'. – Seitaridis

+0

No recuerdo, pero creo que fue parte de la distribución pythonxy. –

+3

mingw32 con gcc 4.6.x no funcionará con distutils de Python 2.7.2 debido a la falta de -mno-cygwin. Es un problema central conocido de Python. ptyhonxy se envía con 4.5.x todavía. –

4

Me acabo de topar con el mismo problema hoy. No es mucho de una respuesta, pero he leído en su 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

Esto, junto con múltiples peticiones sin respuesta para ayuda en diversos foros, listas de correo y grupos de noticias, me llevan a creer que la ejecución de pygraphviz en Windows no es algo que se pueda hacer simplemente hoy.

Así que hice la siguiente cosa obvia (*) y encendí mi Ubuntu en la parte superior de VirtualBox para crear gráficos de Graphviz con Python. Curiosamente, tampoco se instala desde el origen en Ubuntu, a menos que tengas instalado Graphviz desde el origen, pero puede instalarse desde un paquete preconstruido con sudo apt-get python-pygraphviz.

Así que ahora soy un usuario feliz de pygraphviz. O al menos un 90% feliz. PGV muestra una advertencia de depreciación os.popen3 en Python 2.6, y un 18-month-old ticket con un parche sobre este tema todavía no se ha incorporado. Argh!

(*) Lo hago cada vez más últimamente ...

+2

Actualmente está viendo el código fijo en https://networkx.lanl.gov/trac/changeset/1073/pygraphviz/trunk/pygraphviz/agraph.py Al parecer, la versión de pygraphviz que instaló es anterior a esa corrección. Puede obtener la última versión en /http://networkx.lanl.gov/download/pygraphviz/ – Aric

1

Si se quita el parámetro '' runtime_library_dirs del diccionario extensión en la línea 147 en setup.py, el mensaje de error desaparece. Sin embargo, no puede encontrar cgraph.lib. Si cambia su configuración a

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

todo lo cumple y se instala. Puedes importar los módulos, pero en el momento en que intentas acceder a cualquier cosa, explota. Al buscar la fuente de GraphViz, parece que la versión de Windows es C# /. NET. ¿Tal vez esa es la fuente de nuestros problemas?

0

Alternativamente, puede intentar utilizar easy_install y evitar la compilación. Instalé "distribuir", una bifurcación de easy_install. Pero también requiere pkg-config, y usted tiene que compilar eso u obtener una versión anterior. Además, también debe agregar pkg-config a la ruta de la aplicación.

+1

Esto solo funciona si proporcionan una versión fácil de instalar para Windows, lo que parece que no es así. Aunque esta publicación es de mayo ... – Falmarri

1

Sombrero el mismo problema y finalmente lo hice funcionar! El problema era en realidad en msvc9compiler.py de Python (sí, también necesita compilar vc9 de VS8). El error viene en la línea 698 en la función runtime_library_dir_option(). En lugar de tener que tirar un error, se lo devolverá la misma cadena que library_dir_option():

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

a continuación, compilar y debería funcionar.

17

aprecio esto puede ser un hilo obsoletos por ahora, pero para actualizarlo para otros que actualmente está llegando esta pared, el instalador a Christoph Gohlke de Unofficial Windows Binaries for Python Extension Packages solo ha trabajado para mí ..

+0

+100: Gracias. – Oddthinking

+0

+100000 gracias. – user2543622

+0

No pude hacer que esto funcione. Ran graphviz-2.38.msi luego ejecutó pygraphviz-1.2.win32-py2.7.exe. Todavía obtiene el error de importación 'requiere pygraphviz' – SwimBikeRun

0

logré recopilar pygraphviz debajo de las ventanas con la siguiente configuración:

Windows 7, WinPython-32bit-2.7.6.3, Graphviz2.38, microsoft C++ 2008 express visual, pygraphvize 1.3 dev

en setup.py cambió líneas 35 y 36 a:

include_dirs = r "C: \ Archivos de programa \ Graphviz2.38 \ include" library_dirs = r "C: \ lib \ liberación Archivos de programa \ Graphviz2.38 \ \ lib "

La compilación funciona y obtiene un pygraphviz python module en funcionamiento.

Espero que esto ayude.

+0

Hice lo mismo, pero arroja un montón de errores de enlace, ¿sabes cómo solucionarlo? – ascetic652

0

Esto funciona para mí, Python 2.7 32 bit, PyGraphViz 2.38, VCForPython27, Windows 10 64 bit.

Primero, instale VCForPython27, consulte http://aka.ms/vcpython27.

A continuación, ejecute el siguiente comando, para que distutils.msvc9compiler pueda encontrar el compilador de VC. (Esto necesita privilegios de administrador. Y si su Windows es de 32 bits, es necesario ajustar la clave de 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 

Por último, instale pygraphviz.

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