Как установить 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:
PyCairo (http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/ )
PyGobject (http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/ )
-
PyGTK основой ( http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ )
неофициально x64 версии вышеуказанных 3 элементов доступны здесь -- однако я не могу поручиться за них и рекомендовать их!
и конечно
среда выполнения GTK+ (http://ftp.gnome.org/pub/GNOME/binaries/win32/gtk+/ или http://ftp.gnome.org/pub/GNOME/binaries/win64/gtk+/ )
Я подозреваю, что в вашем случае библиотеки 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.