Серьезная нестабильность с pygtk 2.22 и python 2.6 - PullRequest
0 голосов
/ 01 декабря 2010

Кто-нибудь сталкивался с этим?

Я взял образец GTK HelloWorld . Работает нормально. Однако, если я import win32ui, то он не отключается должным образом (как объяснено в этот вопрос ).

Есть и другие проблемы. В процессе сужения моего приложения, чтобы увидеть, что заставило его не закрываться, я столкнулся с моментом, когда я деконструировал класс логгера, с которым я написал, что у меня не было проблем. В конструкторе у меня была строка:

self.logger = logger

Я прокомментировал остальную часть класса, поэтому self.logger даже не использовался. Если бы я оставил строку как есть, я получил бы эту ошибку, нажав кнопку «Hello World»:

c:\python26\lib\site-packages\twisted\internet\gtk2reactor.py:350: GtkWarning: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
  gtk.main()

Если я изменю строку на:

self.logger = 0

тогда ошибка не будет отображаться. Это произошло и с различными другими строками кода в классе logger. Я подозреваю, что это случится и с другими случайными битами кода. Но в любом случае - установка переменной, которая даже не используется , должна не вызывать какие-либо проблемы. Обратите внимание, что в этот момент я все еще использовал twisted с pygtk. Я еще не воспроизвел это только с помощью gtk.

Это заставляет меня подозревать, что pygtk действительно нестабилен ... Кто-нибудь сталкивался с этим раньше? Что я могу сделать? Причина, по которой я обновился с gtk 2.12, заключалась в том, что мое приложение зависало случайным образом, но это намного хуже.

ОБНОВЛЕНИЕ: ошибки происходят в 64-битной Windows 7. Я пробовал как с 32-битным python с версиями, перечисленными выше, так и с 64-битным python с pygtk-2.17.1, pygobject-2.21.2, pycairo -1.8.8 и pywin32-214.

Пока ошибка win32ui не возникает при той же установке на виртуальной машине Windows XP VirtualBox.

1 Ответ

0 голосов
/ 03 декабря 2010

Я пробовал это на другой установке 64-битной Win7 на другом компьютере, и она работала нормально.Так что это странная вещь с аппаратным / другим программным обеспечением на конкретном компьютере.Вероятно, нет ничего общего с gtk или win32.

...