HOWTO · Tkinter

安装 Tkinter

在本教程中,我们演示如何在多个平台上安装 Tkinter。每个平台在 Python 中安装 Tkinter 都有各自的命令。

本页内容

Tkinter 是 Python 标准库提供的 Tk GUI 工具包接口,因此它不是 pip 可以安装的包:pip install tk 下载的那个 tk 包是一个不相关的项目,并不提供这个模块。你是否已经拥有 Tkinter,取决于你的 Python 是如何安装的——python.org 的安装程序会捆绑它所需的 Tcl/Tk 库,而 Linux 发行版则把这部分支持与解释器分开打包。先检查你实际运行的那个解释器:

python -c "import tkinter; print(tkinter.TkVersion)"

如果它打印出类似 8.6 的版本号,说明 Tkinter 可用,无需安装任何东西。如果它以 ModuleNotFoundError: No module named 'tkinter' 失败,请按下面对应你平台的小节操作,然后在同一个解释器中再次运行同一条检查。

在 Windows 上安装 Tkinter

python.org 的 Windows 安装程序自带 Tkinter 所需的 Tcl/Tk 支持。在安装过程中,它显示为 tcl/tk and IDLE 选项——IDLE(安装程序附带的编辑器)本身就是一个 Tkinter 应用程序——该选项在标准安装中处于选中状态,因此 python.org 的解释器通常能通过上面的检查。

如果现有安装中的检查失败,说明这项支持在安装时被漏掉了。重新运行你的 Python 版本对应的安装程序(或对现有安装使用 Modify 选项),并确保选中 tcl/tk and IDLE;Windows 上没有单独的 Tkinter 下载,也没有任何 pip 命令可以补上它。

Anaconda 和 Miniconda 环境是自包含的:它们的 Python 构建包含 Tk 库,因此 Tkinter 通常在 conda 环境中无需额外步骤即可导入。在导入失败的最小化环境中,在该环境内用 conda install tk 添加这些库,然后用该环境的解释器重新运行检查。

在 Linux 上安装 Tkinter

Linux 发行版把 Tkinter 从解释器软件包中拆分出来,因此在 Linux 上安装 Tkinter 意味着安装一个发行版软件包。软件包的名称因发行版家族而异——请使用与你所用发行版对应的命令。

在 Debian、Ubuntu 及其衍生版上,软件包是 python3-tk(Debian 的软件包说明指出,Tkinter 模块正是被从标准库中拆分到这个包里的):

sudo apt install python3-tk

在 Fedora 上,软件包是 python3-tkinter:

sudo dnf install python3-tkinter

在 Arch Linux 上,包管理器是 pacman,Tk 工具包本身是 tk 包——安装它就能为系统 Python 提供其 Tkinter 模块所加载的库:

sudo pacman -S tk

这些命令适用于发行版的 Python 3;如果你运行的是某个特定版本的解释器,请安装你的发行版提供的、相匹配的带版本号的软件包(例如 Debian/Ubuntu 上的 python3.13-tk,或 Fedora 上的 python3.13-tkinter)。任何为 Python 2 写的内容,描述的都是一个已经过时的解释器系列,并不适用;而下载某个不相关的 tk 包的源码压缩包并运行其安装脚本,也不是安装这个标准库模块的路线。

在 macOS 上安装 Tkinter

python.org 的 macOS 安装程序捆绑了它自己的 Tcl/Tk,因此从 python.org 安装的解释器包含 Tkinter——用那个解释器运行检查来确认。

Homebrew 的 Python 则不同:Homebrew 在其 formula 说明中指出,tkinter 已不再包含在 python formula 之中,而是单独提供。用以下命令安装:

brew install python-tk

python-tk formula 跟随当前的 Homebrew Python;如果你运行的是带版本号的 Homebrew Python(例如 python@3.13),请安装对应的 python-tk@3.13,让模块落到需要它的那个解释器里。与 Windows 上一样,pip 无法提供标准库模块。

在 PyCharm 中安装 Tkinter

PyCharm 本身不提供 Tkinter,IDE 内部也没有任何需要为它安装的东西:Tkinter 属于项目所配置使用的那个 Python 解释器。如果某个项目报告 tkinter 缺失,说明它配置的解释器是一个没有 Tk 支持的解释器。

打开项目的解释器设置,用本文开头的检查针对那个解释器运行一次——PyCharm 中该项目的 Python 控制台使用的正是同一个环境。如果检查失败,要修的是解释器而不是项目:为系统解释器安装上面各节中对应平台的软件包,或者选择一个能通过检查的解释器,例如 Windows 或 macOS 上的 python.org 解释器,或一个 conda 环境。通过 PyCharm 的包工具添加一个字面名为 tk 的包,装到的是那个不相关的 PyPI 包,并不能修复这个导入问题。

无论你在哪个平台上,最后都要在你的代码实际将要运行的解释器中完成验证。Python 自带一个 Tkinter 演示程序,正好可以兼作验证:

python -m tkinter

用你检查过的那个解释器运行它:当 Tkinter 安装正确时,它会打开一个报告 Tcl/Tk 版本的小窗口;关闭窗口即可结束。如果导入检查打印出了 Tk 版本,并且这个窗口能够打开,你的环境就已具备 Tkinter 所需的一切。