导入错误:没有名为'Tkinter'的模块

429

由于某些原因,我无法使用 Tkinter (或者在 Python 3 中的 tkinter)模块。 在Python shell中运行以下命令后:

import Tkinter

或者在 Python 3 中:

import tkinter

我遇到了这个错误:

ModuleNotFoundError: No module named 'Tkinter'

或者是这个错误:

ModuleNotFoundError: No module named 'tkinter'

这些错误的原因是什么,我该如何解决?

28个回答

644
您可能需要使用类似以下方式安装它:
  • For Ubuntu or other distros with Apt:

    sudo apt-get install python3-tk
    
  • For Fedora:

    sudo dnf install python3-tkinter
    
您可以像这样提及Python版本号:

您也可以像这样提及Python版本号:

  • sudo apt-get install python3.7-tk
    
  • sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
    

最后,导入tkinter(适用于Python 3)或者Tkinter(适用于Python 2),或者根据Python解释器的版本号在运行时进行选择(以兼容两个版本):

import sys
if sys.version_info[0] == 3:
    import tkinter as tk
else:
    import Tkinter as tk

4
是Tkinter更改为tkinter的大小写形式让我困惑了,现在每个人都需要更新他们的示例代码 :) - Guy Starbuck
6
如果它是Python标准接口,为什么还需要安装它? - Marko
49
针对 macOS 操作系统,可执行 brew install python-tk 命令进行安装。该命令会安装 Python 的 tkinter 扩展库,用于创建 GUI 应用程序界面。 - Erik Kaplun
2
最后,对于Windows和Win32,安装时请记得检查“Python 3.11的Tcl支持”。 - Misinahaiya
如果使用MacPorts而不是Homebrew,可以按照以下步骤操作:python --version; port search python | grep tk,然后执行sudo port install py311-tkinter - arober11
这对于安装多个Python版本(例如3.8和3.10)非常方便。 - undefined

93
由于您使用的是Python 3版本,因此根据文档,该模块已更名为tkinter

请注意,Tkinter在Python 3中已更名为tkinter。2to3工具将自动适应导入,将您的源代码转换为Python 3。


85

如果你在 Mac 上使用 Python 3.9,你可以使用 brew 简单地安装 tkinter

brew install python-tk@3.9

这个方法解决了我的问题。

编辑:
正如其他人提到的那样,你也可以使用一般命令来安装最新版本:

brew install python-tk

6
在我的情况下,需要安装Python-Tk@3.10,可以通过执行"brew install python-tk@3.10"命令来完成。 - panchicore

55

对于Windows 10系统,在Python安装时检查"tcl/tk和IDLE"的可选功能非常重要。否则,您会收到一个ModuleNotFoundError: No module named 'tkinter'错误。在我的情况下,无法通过类似"pip install tkinter"的方式在Python安装后安装tkinter。


4
没错,Python的“可嵌入式压缩文件”不包含tk,我们应该下载“可执行安装程序”,并记得选择“tcl/tk和IDLE”选项。 - tinyhare
25
你可以通过再次启动Python安装程序并选择“修改”来修改Python安装。在那个时候,你可以勾选“tcl/tk和IDLE”复选框并获取你需要的模块。 - Sergio Morstabilini
另外需要注意的是,Python的“可嵌入zip文件”中不包含pip,因此必须先安装它。(来自初学者Python用户) - rveach

41

安装Tkinter在流行的Linux发行版上:

Debian/Ubuntu:

sudo apt install python3-tk -y  

Fedora:

sudo dnf install -y python3-tkinter

Arch:

sudo pacman -Syu tk --noconfirm 

REHL/CentOS6/CentOS7:

sudo yum install -y python3-tkinter

OpenSUSE:

sudo zypper in -y python-tk

-1;tkintertable 不是与内置 tkinter 模块相同的东西。 - Mark Amery
3
依然:import _tkinter # 如果失败,您的 Python 可能未配置为 Tk。ModuleNotFoundError: 找不到名为 '_tkinter' 的模块 - Dr.jacky
tkinter是一个标准库模块,不能使用pip安装。tkintertable不是同一件事,它只是建立在tkinter之上的项目。 - Martijn Pieters
2
请注意,这似乎不能修复现有的虚拟环境,只能修复在此之后创建的虚拟环境。 - tsbertalan
1
@tsbertalan 虚拟环境可以根据配置选项和平台以不同的方式创建。如果整个标准库文件夹是符号链接而不是被复制,虚拟环境应该会自动更新。否则就需要重新创建虚拟环境。 - Karl Knechtel

25

适用于Mac:

brew install python-tk

2
它只是有效的。谢谢。 - Vadim Kurochkin

19

你可能需要为你的特定版本安装,我曾经使用多个版本的Python并在一个虚拟环境中使用例如Python 3.7时无法导入tkinter,我需要为那个版本单独安装它。

例如:

sudo apt-get install python3.7-tk 

不知道为什么,但这种情况发生了。


14

安装Tkinter

python -m pip install tk-tools

sudo apt install python3-tk


3
在我的Python 3.8虚拟环境中,所有pip命令都无法正常工作。唯一有效的是apt命令。 - tsbertalan
4
我对在这里使用pip安装依赖于内置tkinter模块的任意PyPI模块(例如此处的tk-tools或下面一个答案中的tkintertable)作为解决内置tkinter模块不可用的方案感到困惑。这似乎不可能有所帮助,即使它确实起作用,这也是一个相当丑陋的解决方案,因为您将得到安装的任意第三方模块,而这可能并不是您想要的。 - Mark Amery
2
不要使用 Pip。它无法帮助解决问题。 - Karl Knechtel

10

对于在 Windows 10 上使用 VSCode 或 PyCharm 和 Python 3.7.4 的情况,确保在安装过程中选中了 Tk。我尝试了各种大小写变体的 import tkinter as xyz,但都没有成功。

下面的方法是可行的:

import tkinter
import _tkinter
tkinter._test()

一个实例的示例:

import tkinter
import _tkinter

HEIGHT = 700
WIDTH = 800

root = tkinter.Tk()

canvas = tkinter.Canvas(root, height = HEIGHT, width=WIDTH)
canvas.pack()

frame = tkinter.Frame(root, bg='red')
frame.pack()

root.mainloop()

4
我认为直接导入 _tkinter 没有任何效果。tkinter 会自动导入它。 - Bryan Oakley
@BryanOakley 我认为这没有任何影响。我可以发誓这是解决方法,而且至少对其他5个人有效。那一定是一个bug。 - Jeremy Thompson
3
为什么需要导入 _tkinter?这解决了什么问题?如何解决这个问题?编程应该是确定性的,而不是随机尝试。在 Ubuntu 20.04 上,我可以删除这行代码,脚本仍然可以运行。 - Frederick Ollinger
2
这可能需要一个新的问题。这是针对Windows 10的特定问题,虽然Python是跨平台的,但并不是无缝的。 - Jeremy Thompson
请参考https://dev59.com/SV8e5IYBdhLWcg3wRYwk - python 3 import tkinter # 注意这里的tkinter中的小写't' - flywire

7

使用命令python --version检查已安装的Python版本。

通过以下代码检查Tk模块是否已正确安装。

sudo apt-get install python3-tk 

如果您正在使用开源操作系统,则请检查以下路径中的tkinter模块: /home/python/site-packages/tkinter 根据您的系统更改路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接