Как установить PyGTK/PyGobject в Windows с помощью Python 2.6?
У меня есть приложение, которое зависит от PyGTK, PyGobject и PyCairo, которые я создал для работы в Linux. Я хочу передать его в окна, но когда я выполняю import gobject
, я получаю следующее:
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.
Это, по-видимому, вызвано отключением коммутатора от MinGW до Microsoft Visual Studio, как описано Python Bug 3308 (closed: wontfix
).
Есть ли способ установить PyGTK/PyGObject таким образом, который будет работать с Python 2.6 в Windows, не перекомпилируя тот или иной источник?
Ответы
Ответ 1
У меня он работает нормально, и это не сильно беспокоило меня, поэтому мы знаем, что это можно сделать...
Имейте в виду, что вам, вероятно, понадобится все следующее, установленное на вашей машине Windows:
Я подозреваю, в вашем случае, что библиотеки PyGTK не находят ваш каталог GTK + Runtime, где находятся библиотеки DLL. У вас должна быть переменная окружения GTK_BASEPATH, установленная в каталог вашего GTK + Runtime (обычно C:\GTK).
Также см. PyGTK-on-Windows FAQ
Теперь, если вы пытаетесь скомпилировать PyGTK'ed Python с Py2EXE, это немного сложнее, но это также можно сделать...
Ответ 2
Недавно был обновлен инсталлятор "все-в-одном" PyGTK:
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/
Это установит PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, gtk + -bundle и Glade. Это абсолютно все, что нужно, чтобы иметь возможность успешно import gobject
, import gtk
и т.д., Без проблем с DLL.
Ответ 3
для 64-разрядных пользователей Windows см.
http://digitalpbk.blogspot.in/2012/03/installing-pygtk-pypango-and-pycairo-on.html
Вышеуказанные шаги дадут неверную ошибку DLL на 64 бит.
Ответ 4
u должен иметь pygtk, pycairo, pygboject и gtk + runtime...
см. это для всех в одном установщике
http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html
Ответ 5
Соблюдайте осторожность при установке пакета пакетов PyGTK, если кто-либо, планирующий запустить PyGTK через встроенный интерпретатор, и код C/С++ уже использует GTK. Пакет пакетов PyGTK не добавляет его время выполнения GTK в PATH.
В таком случае, возможно, код C возьмет GTK из PATH (возможно, вы уже установили пакет пакетов GTK), а Python будет использовать отдельный набор библиотек времени исполнения GTK.
Поэтому в моем случае графический интерфейс C GUI или Python использовался для правильной работы и использовался для конфликта во время работы.
Поскольку я использую Psychopy в качестве моей базовой коллекции python, для решения этой проблемы я только что установил PyGTK PyGTK, Pycairo, Pygobject поверх Psychopy.
Помимо использования только одного набора времени выполнения GTK мне пришлось инициализировать GTK в моем C-коде через PyGTK (не gtk_init (& argc, & argv) в моем C-коде) после инициализации интерпретатора python.