MacOS 10.14.6 更新后 Tkinter 导致计算机崩溃
Posted
技术标签:
【中文标题】MacOS 10.14.6 更新后 Tkinter 导致计算机崩溃【英文标题】:Tkinter crashes computer after MacOS 10.14.6 update 【发布时间】:2019-12-17 12:57:57 【问题描述】:昨天将我的 2019 Macbook Pro 更新到 MacOS Mojave 10.14.6 后,我使用 pyinstaller 打包的 tkinter 应用程序现在使我的计算机崩溃。屏幕变黑一秒钟,然后重新进入登录屏幕。当我通过命令行(未打包)运行程序时,它运行得很好。
终端多次出现的错误码是:CGSTrackingRegionSetIsEnabled returned CG error 268435459
。
我所做的研究让我找到了这些链接:
-
This unanswered *** question
This semi-related SuperUser question
This question on the Japanese Q&A site teratail
未回答的 *** 问题与我自己的问题略有不同,因为用户似乎根本无法创建 Tk() 窗口,而我可以创建 Tk() 窗口(包括 Python IDLE),但它会中断当我用 pyinstaller 打包它时。
超级用户的问题没有得到解答,但正如其中一个答案表明我已经卸载并重新安装了 pyinstaller 无济于事。
回答了关于teratail的问题,并说通过卸载“Anaconda”解决了问题,但我不知道Anaconda是什么或如何卸载它。
我怀疑这是 MacOS 更新的问题,我无法修复它,只能等待补丁。
为什么会这样?我该如何解决?
【问题讨论】:
【参考方案1】:这个问题困扰了我很久。我的 macOS 版本是 10.14.6 (Mojave)。运行 tkinter 会导致系统崩溃,但我不想为这个问题将 macOS 版本更新到 10.15 (Catalina)。
我通过更新python版本得到了解决方案。
我自己的测试结果,python版本3.8.2和3.8.3可以解决问题,但是python版本3.8.1、3.7.x、3.6.x会导致崩溃。 p>
【讨论】:
【参考方案2】:我可以确认 Python 3.7.x 会发生这种情况。迁移到 3.8.3 解决了这个问题。
【讨论】:
修复它。这是唯一修复它的东西。其他声称的解决方案——比如改变渲染后端——什么也没做。 我正在使用 Python 3.9.6、Tk 8.6 和 py2app 在 Mac OS 10.14.5 上开发应用程序。它可以作为 10.14.5 的独立应用程序编译和运行,但我在 10.14.6 上运行时遇到了原始帖子中描述的相同错误。当您说“迁移到 3.8.3 解决问题”时,您是说应用程序需要在 Python 3.8.3 上编译,还是需要在 10.14.6 计算机上安装 Python 3.8.3?我没有能够降级 10.14.6 Mac 或将其升级到 Catalina 的奢侈。 没错,需要使用3.8.3编译。事实上,当你使用 PyInstaller 打包时,你根本不需要在运行应用程序的机器上安装 Python。【参考方案3】:新的 MacOS Catalina(10.15 版)更新似乎为我解决了这个问题。通过指定tcl version 和making sure the right tcl is used,我能够成功地使用tkinter 捆绑和运行我的python 脚本。耶!
【讨论】:
查询:升级到 10.15 后,我是否必须使用 pyinstaller 重新编译,或者问题是否简单地解决了,我可以打开以前编译的可执行文件吗?【参考方案4】:我在 Mac OSX 10.14.6 完全崩溃时遇到了同样的问题,没有任何错误消息,并让我退出或重新启动。通过删除 Anaconda 并使用 python.org ver 3.7.4 来修复它。删除 Anaconda 的一个很好的链接在这里。 How to uninstall Anaconda completely from macOS
【讨论】:
令人着迷。是否有可能只是切换到版本 3.7.4 就可以了?您是如何得出 Anaconda 的结论的?【参考方案5】:解决方法:以安全模式启动.. (其他应用也遇到这种情况。)
macOS 窗口服务器正在崩溃.. Console.app 在“系统报告”节点中包含崩溃报告。
进程:WindowServer CGXBeginSurfaceLayerUpdate 中的线程 0(主线程)崩溃
【讨论】:
似乎与使用 [NSColorSpace deviceRGBColorSpace] 的代码有关,也许 Apple 可以在更新中修复他们的 Window Server.. 或重建 tk 以不使用 deviceRGBColorSpace。以上是关于MacOS 10.14.6 更新后 Tkinter 导致计算机崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4
NSURLConnection 以错误 iOS13 模拟器和 MACOS 10.14.6 完成
为啥 PyCharm tkinter GUI 在 macOS Monterey 12 更新中不起作用?