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() 上不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在 Mac 上使用 python 更改 tkinter 按钮的背景颜色?
如何在 Mac OS 上使用 Tkinter 获取黑色文件对话框?