Tkinter 导致 SIGSEGV 和系统崩溃 - 如何修复?

2023-12-26

我正在为 python 项目开发 Tkinter GUI。昨天一切都很好,但是今天当我运行以下命令时,我的 mac 立即崩溃(返回到登录屏幕)mainloop()命令。

我尝试通过减少 GUI 功能来隔离问题,但没有任何帮助。即使是最简单的 GUI 也会出现这个问题。

我正在使用这个演示代码:

from tkinter import Tk, Label, Button

class MyFirstGUI:
    def __init__(self, master):
        self.master = master
        master.title("A simple GUI")


root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()

当我运行最后一行时,我的屏幕会变黑一秒钟,然后返回 MacOS 登录屏幕。从终端运行脚本时也会发生这种情况。重复几次后,我发现每次崩溃后都会在 system.log 中重复出现这一行:

Jul 29 17:58:51 MacBook-Pro-myname com.apple.xpc.launchd[1] (com.apple.WindowServer[1510]): Service exited due to SIGSEGV | sent by exc handler[1510]

每次崩溃的处理程序编号都是唯一的。在安全模式下启动可以解决问题,但我当然不能永远生活在安全模式下:)

这似乎是某种内部问题,因为 python 代码再简单不过了。我不知道如何调试这个,有人可以帮我吗?

已修复 - 由于某种原因,Tkinter 开始弄乱我的机器。更新到 8.6.9 解决了该问题。 (看:https://bugs.python.org/issue34927 https://bugs.python.org/issue34927)


事实证明,由于某种原因,Tkinter (8.6.*) 的标准版本不再正常运行。我发现https://bugs.python.org/issue34927 https://bugs.python.org/issue34927不久后更新到 Tkinter 8.6.9 (conda forge),这似乎已经解决了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tkinter 导致 SIGSEGV 和系统崩溃 - 如何修复? 的相关文章

随机推荐