【发布时间】:2010-12-01 16:45:00
【问题描述】:
有人遇到过这个吗?
我参加了 GTK HelloWorld sample。它运行良好。但是,如果我 import win32ui,则它不会正常关闭(如 this question 中所述)。
还有其他问题。在缩小我的应用程序以查看导致它无法关闭的原因的过程中,我遇到了一个问题,即我正在解构我编写的一个没有问题的记录器类。在构造函数中,我有一行:
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
那么错误就不会出现。这也发生在记录器类中的各种其他代码行中。我怀疑其他随机代码也会发生这种情况。但无论如何 - 设置一个甚至没有使用的变量应该不导致任何类型的问题。请注意,此时我仍在使用 twisted 和 pygtk。我还没有用 gtk 复制这个。
这让我怀疑 pygtk 真的很不稳定......以前有人遇到过这个吗?有什么我可以做的吗?我从gtk 2.12 更新的原因是因为我的应用程序会随机崩溃,但这要糟糕得多。
更新:这些错误发生在 64 位 Windows 7 上。我已经尝试过使用上面列出的版本的 32 位 python,以及使用 pygtk-2.17.1、pygobject-2.21.2、pycairo 的 64 位 python -1.8.8 和 pywin32-214。
到目前为止,win32ui 错误不会在 Windows XP VirtualBox 虚拟机上进行相同的安装。
【问题讨论】:
标签: python debugging crash gtk pygtk