2009-08-18 15 views
11

Tengo una aplicación que depende de PyGTK, PyGobject y PyCairo que construí para trabajar en Linux. Quiero portarlo a Windows, pero cuando ejecuto import gobject me sale esto:¿Cómo instalo PyGTK/PyGobject en Windows con Python 2.6?

Traceback (most recent call last): 
    import gobject 
    File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module> 
    from gobject.constants import * 
    File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module> 
    from _gobject import type_from_name 
ImportError: DLL load failed: The specified procedure could not be found. 

Esto parece ser causado por el cambio de la construcción de utilizar MinGW para Microsoft Visual Studio, tal como se documenta Python Bug 3308 (closed: wontfix).

¿Hay alguna forma de instalar PyGTK/PyGObject de manera que funcione con Python 2.6 en Windows, sin tener que volver a compilar uno u otro desde el código fuente?

Respuesta

11

tengo que funcione bien, y no me dio muchos problemas, así que sé que se puede hacer ...

que tener en cuenta es probable que necesite todos los siguientes instalados en su máquina Windows :

sospecho en su caso que las bibliotecas PyGTK no están encontrando su directorio GTK + Runtime donde los archivos DLL son. Debería tener la variable de entorno GTK_BASEPATH configurada en el directorio de su GTK + Runtime (generalmente C: \ GTK).

Consulte también la PyGTK-on-Windows FAQ

Ahora, si usted está tratando de compilar el pitón PyGTK'ed con py2exe, eso es un poco más complicado, pero se puede hacer así ...

+1

el enlace de Pygtk: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ – jknair

+0

Gracias. Corregido ahora. – ewall

+0

ewall: ¿Por qué la referencia es solo para 32 bits? ¿Cómo hacemos lo mismo para Windows 7 de 64 bits o Windows 8? ¿Puede compartir por favor (porque en google search su enlace aparece en el resultado a menudo) - http://ftp.gnome.org/pub/GNOME/binaries/win64/? – YumYumYum

4

el PyGTK todo-en-uno instalador se ha actualizado recientemente:

http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/

Esto instalará PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, el GTK + -bundle y Glade. Es absolutamente todo lo necesario para poder import gobject, import gtk, etc. sin problemas de DLL.

0

Tenga cuidado al instalar el paquete de paquetes PyGTK si planea ejecutar PyGTK a través de un intérprete incorporado y el código C/C++ ya está usando GTK. El paquete de paquete PyGTK no agrega su tiempo de ejecución GTK a PATH.

En tal caso, posiblemente el código C tomará GTK de PATH (como probablemente ya haya instalado el paquete de paquete GTK) y Python utilizará un conjunto separado de bibliotecas de tiempo de ejecución GTK.

Por lo tanto, en mi caso, la GUI de C o la GUI de Python solía ejecutarse correctamente y solía entrar en conflicto mientras se ejecutaban juntas.

Como utilizo Psychopy como mi colección básica de python, para resolver este problema acabo de instalar PyGTK PyGTK, Pycairo, Pygobject encima de Psychopy.

Aparte de utilizar solamente un sistema de tiempo de ejecución de GTK que tenía para inicializar GTK en mi código C a través de PyGTK (no por gtk_init (& argc, argv &) en mi código C) después de inicializar el intérprete de Python.