Tkinter 在 Mac 上的 Tk() 上不断崩溃

Posted

技术标签:

【中文标题】Tkinter 在 Mac 上的 Tk() 上不断崩溃【英文标题】:Tkinter keeps crashing on Tk() on Mac 【发布时间】:2018-01-10 03:09:33 【问题描述】:

我在尝试使用 root = tk.Tk() 创建 Tkinter 窗口时遇到问题。每次我到达那个点时,程序都会崩溃,并显示“Python 意外退出”消息。

我根本没有得到任何回溯,所以我认为这是 ActiveTcl 错误。但是,我安装了来自 ActiveTcl 网站的新发行版,它应该可以解决问题(显然,它没有)。

有趣的是,它只有在 Python 2.7 中执行时才会崩溃。它在 Python 3.6 中运行良好。但是,我需要使用 2.7。

我的 MacOS 版本是 10.12.5。

欢迎任何有关解决问题的想法/建议。

附:在发布此之前,我已经阅读了很多类似的帖子,并且没有任何建议的解决方案对我有用。请在将此帖子标记为重复之前考虑这一点。

【问题讨论】:

当您打开交互式提示,导入 tkinter,然后创建根窗口时会发生什么?似乎您是在说您只是返回到 bash 提示符而没有任何消息。对吗? 我刚试了一下,发现在交互式提示下我无法导入任何模块。 “不能”相当模糊。为什么你不能?错误说明了什么?听起来 python 只是在错误的地方寻找包。 抱歉,我在尝试导入的任何模块上都收到“找不到模块”错误。这正是我所看到的。 因此,请检查您的 PYTHONPATH 变量(或 sys.path,如果您能够导入 sys 模块)。 【参考方案1】:

我不知道 ActiveTcl 的“新发行版”是什么意思,但如果您使用的是 8.6,则需要将其降级到 8.5。

另外,如果您运行使用 Tkinter 的 IDLE,您是否看到任何警告“不稳定”的消息?如果你看到了,那就意味着你需要将 Tcl 降级到 8.5。

【讨论】:

【参考方案2】:

需要像这样导入 Tkinter 才能同时使用 python 2 和 3:

try:
    import tkinter
except ImportError:    # python 2
    import Tkinter as tkinter

【讨论】:

【参考方案3】:

您是否通过 Anaconda 运行 Python 3? Tkinter 在我身上表现出各种时髦,然后我卸载了 Anaconda,现在它可以正常工作了。

有趣的是,我在我的 Mac 上的 Windows 10 VM 上运行 PyCharm Professional / Anaconda 组合,我也遇到了 Tkinter 问题。不过,我的 Linux Mint 盒子完全没有问题。

重申一下,我可以通过完全删除 Anaconda 来解决此问题。 (How to uninstall Anaconda completely from macOS)

【讨论】:

以上是关于Tkinter 在 Mac 上的 Tk() 上不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章

删除 Tkinter 窗口上的 TK 图标

为啥我不能在 Mac 上使用 python 更改 tkinter 按钮的背景颜色?

如何在 Mac OS 上使用 Tkinter 获取黑色文件对话框?

画布上的 tkinter 菜单栏

Python tkinter(GUI编程)模块最完整讲解(上)

Python_面向对象_tkinter库