Как установить PyGTK / PyGobject в Windows с Python 2.6?

у меня есть приложение, которое зависит от PyGTK, PyGobject и PyCairo, которые я построил для работы в Linux. Я хочу перенести его в windows, но когда я выполняю import gobject Я понимаю:

Traceback (most recent call last):
    import gobject
  File "C:Python26libsite-packagesgtk-2.0gobject__init__.py", line 30, in <module>
    from gobject.constants import *
  File "C:Python26libsite-packagesgtk-2.0gobjectconstants.py", line 22, in <module>
    from _gobject import type_from_name
ImportError: DLL load failed: The specified procedure could not be found.

это, по-видимому, вызвано переключением из здания с помощью MinGW в Microsoft Visual Studio, как описано Ошибка Python 3308 (closed: wontfix).

есть ли способ установить PyGTK/PyGObject таким образом, чтобы он работал с Python 2.6 в Windows, без необходимости перекомпилировать один или другой из источника?

5 ответов


У меня все работает нормально, и это не доставило мне много проблем, поэтому мы знаем, что это можно сделать...

имейте в виду, что вам, вероятно, понадобится все следующее, установленное на вашем компьютере с Windows:

Я подозреваю, что в вашем случае библиотеки PyGTK не находят ваш каталог GTK+ Runtime, где находятся библиотеки DLL. У вас должна быть переменная среды GTK_BASEPATH, установленная в каталог вашей среды выполнения GTK+ (обычно C:\GTK).

см. Также PyGTK-on-Windows FAQ

теперь, если вы пытаетесь скомпилировать PyGTK основой объед Python с Py2EXE, это немного сложнее, но это может быть сделано так же...


недавно был обновлен установщик PyGTK all-in-one:

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

это установит PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, GTK+-bundle и Поляну. Это абсолютно все, что необходимо, чтобы успешно import gobject, import gtk и т. д. без проблем с DLL.


для 64-битных пользователей Windows см.

http://digitalpbk.blogspot.in/2012/03/installing-pygtk-pypango-and-pycairo-on.html

вышеуказанные шаги дадут недопустимую ошибку DLL на 64 бит.


u должен иметь pygtk,pycairo, pygboject и среду выполнения gtk+...

см. это для установщика all in one http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html


будьте осторожны при установке пакета PyGTK bundle pack, если кто-то планирует запустить PyGTK через встроенный интерпретатор, а код C/C++ уже использует GTK. Пакет PyGTK bundle pack не добавляет свою среду выполнения GTK в PATH.

в таком случае, возможно, код C возьмет GTK из пути (как, вероятно, вы уже установили пакет GTK bundle pack), и Python будет использовать отдельный набор библиотек времени выполнения GTK.

поэтому в моем случае либо C GUI, либо Python GUI используется для правильной работы и привыкли конфликтовать во время бега вместе.

поскольку я использую Psychopy в качестве базовой коллекции python, для решения этой проблемы я только что установил PyGTK PyGTK, Pycairo, Pygobject поверх Psychopy.

Помимо использования только одного набора среды выполнения GTK мне пришлось инициализировать GTK в моем коде C через PyGTK (не gtk_init (&argc, &argv) в моем коде C) после инициализации интерпретатора python.