Puppy Linux - импорт gtk выдает ошибку в Python

Я использую Linux версии 2.6.24.16. Я полагаю, что он использует Puppy Linux 4.2. На самом деле я использую Puppy Arcade, специализированную ветку. Однако их файл справки намекает, что это 4.2.

Я использую Python 2.6.4, который я установил через пакет puppy, опубликованный здесь: http://code.google.com/p/puppy-development/downloads/detail?name=Python%2B-2.6.4-i486.pet&can=2&q=

Пакет утверждает, что имеет pygtk, и это правда, что у меня нет проблем с тем, чтобы сообщить python import pygtk

Однако, как только я пытаюсь import gtk, он выдает следующую ошибку:

>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 38, in <module>
    import gobject as _gobject
  File "/usr/lib/python2.6/site-packages/gtk-2.0/gobject/__init__.py", line 26, in <module>
    from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
  File "/usr/lib/python2.6/site-packages/gtk-2.0/glib/__init__.py", line 22, in <module>
    from glib._glib import *
ImportError: /usr/lib/python2.6/site-packages/gtk-2.0/glib/_glib.so: undefined symbol: g_assertion_message

Хотел бы я сказать вам, какую версию pygtk я использую, но кажется, что информация хранится внутри gtk, которую я не могу импортировать.


person Tylo    schedule 03.12.2010    source источник


Ответы (1)


Похоже, что пакет pygtk, который вы пытаетесь использовать, скомпилирован с более новыми библиотеками glib (и, возможно, gtk+). Просто из наблюдений (я не пользователь щенка) похоже, что вы загрузили пакет pygtk для 4.3 (с возможными более новыми библиотеками времени выполнения).

person barti_ddu    schedule 03.12.2010
comment
Будет ли решением здесь попробовать установить более новый glib и/или gtk+? - person Tylo; 04.12.2010
comment
Как вариант; однако было бы безопаснее найти пакет pygtk для вашей версии дистрибутива, поскольку неудачное обновление gtk+ может привести к поломке других программ, зависящих от него. - person barti_ddu; 04.12.2010
comment
Хорошо, я попробую и посмотрю, как пойдет. - person Tylo; 04.12.2010