pygtk import gtk error - PullRequest
       7

pygtk import gtk error

3 голосов
/ 14 ноября 2010

Я загрузил все, что описано в pygtk для установки.Все шло нормально, пока я не попытался набрать "import gtk", он выдал ImportError следующим образом:

from gtk import _gtk  
ImportError: DLL load failed: ...(something unreadable)

Затем я снова переустановил pygtk-2.22.0, возникла та же проблема.Так что делать, пожалуйста?Заранее спасибо!

Ответы [ 5 ]

2 голосов
/ 07 января 2011

Ошибка, которую вы описываете, обычно вызвана тем, что привязки python (pygtk / pygobject / pycairo) не могут загрузить dll, необходимые для правильной работы. Большинство из этих ошибок вызваны:

  • среда выполнения GTK + не входит в переменную среды PATH. Это давно совет о том, как заставить pygtk работать на Windows. Пожалуйста, не меняйте своего пользователя или системная переменная среды PATH, она больше не нужна для многофункционального устройства Установщик.
  • несколько версий среды выполнения GTK + находятся в переменной окружения PATH, и первая (крайний левый) один не совместим с версиями pygtk / pygobject / pycairo, которые вы используете. Вот почему добавление среды выполнения GTK + в переменную среды PATH - плохая идея: легко перепутать версии (иногда установщики, связанные с GTK +, добавляют свой бин каталог к ​​PATH при установке, который содержит более старую или неполную среду выполнения).
  • редкий случай, когда какой-либо программный пакет установил libintl.dll и iconv.dll в % WINDIR% \ system или% WINDIR% \ sytem32

Самый простой способ избежать ада dll, описанного выше, это использовать Программа установки PyGTK «все в одном» (http://download.gnome.org/binaries/win32/pygtk/2.22/). Он содержит как привязки Python, GTK + время выполнения и даже Glade и делает больше не требуется изменять переменную среды PATH.

Небольшое предупреждение: если вы решите использовать универсальный установщик, вам придется удалить отдельные пакеты pygtk / pygobject / pycairo, которые вы использовали ранее (или вы будете в мир неприятностей ...)

0 голосов
/ 06 июня 2013

После установки пакета pygtk.org установите каждый из них в следующем порядке:

  • pycairo-1.8.6.win32-py2.6.exe
  • pygobject-2.20.0.win32-py2.6.exe
  • PyGTK-2.16.0 + glade.win32-py2.6.exe
  • GTK + -bundle_2.16.6-20100912_win32.zip

Для получения дополнительной информации:

http://freetstar.com/windows7-pygtk-gtk/

Я получил секусы по ссылке на моем ПК.

0 голосов
/ 23 марта 2013

Задача

Как уже отмечали другие, не ставьте gtk на путь. Я знаю, это заманчиво, и это работает для XYZ, но это (по меньшей мере) становится запутанным. Ад зависимостей достаточно плох для такой платформы, как Linux, которая пытается упростить вам задачу.

Для пояснения, что PyGTK All In One делает для вас, это установить (как представляется,) полную среду выполнения gtk + прямо в папку пакетов python, например, в C: \ Python \ Lib \ site-packages \ gtk-2.0 \ runtime

Решение

ПРИМЕЧАНИЕ :% YOURPYTHONPATH% - это переменная EXAMPLE , которая содержит путь к вашей установке Python (например, C: \ Python или C: \ Python27, или что бы то ни было на самом деле) ). Я предлагаю установить% PYTHON_DIR% или% PYTHON_PATH%, если вы хотите использовать переменную для этого, так как больше программ, вероятно, будут использовать это.

Чтобы заставить вашу программу XYZ, требующую GTK, добавить % YOURPYTHONPATH% \ Lib \ site-packages \ gtk-2.0 \ runtime \ bin в PATH при запуске вашей программы; в этой папке находятся правильные версии библиотек, с которыми нужно связать ссылки. Все другие установленные мной среды выполнения GTK + (GTK + / GTK2-Runetime) давали мне ошибки.

Опять; Не не пытайтесь установить пользовательскую или системную переменную уровня (не открывайте диалоговое окно, изображенное ниже), так как это может вызвать проблемы позже, если вы ОЧЕНЬ не уверены, что делаете. , Если вы читаете это, вы, скорее всего, не знаете столько, сколько думаете. Вместо этого измените путь в командной строке или используйте пакетный файл / файл сценария, чтобы настроить его для вас.

enter Windows Environment Variables Dialog

0 голосов
/ 04 декабря 2011

У меня тоже была эта проблема.Вы не упомянули наверняка в своем ответе, поэтому я предложу очевидное (ну ... очевидное для людей, которые использовали его некоторое время, возможно).Использовали ли вы следующие три строки кода для импорта?Вы должны использовать их, чтобы импортировать PyGTK.

Я предполагаю, что ваша версия здесь 2.24 похожа на мою.Если нет, измените его на имеющуюся версию.

import pygtk
pygtk.require('2.24')
import gtk

Этого должно хватить при импорте gtk.

0 голосов
/ 14 ноября 2010

прочитайте исходный код, возможно есть необходимость в конкретной версии pygtk

отредактируйте исходный код для работы с вашей версией pygtk

...