ImportError:没有名为“ Tkinter”的模块


206

由于某些原因,我无法使用Tkinteror tkinter模块。在python shell中运行以下命令后

import Tkinter

要么

import tkinter

我得到这个错误

ModuleNotFoundError:没有名为“ Tkinter”的模块

要么

ModuleNotFoundError:没有名为“ tkinter”的模块

可能是什么原因,我们如何解决呢?


7
安装它不是python随附的吗?
RasmusGP 2014年

这取决于您使用的是哪个版本?
Zeb

问题是我安装了错误的python版本,并且现在还没有安装所有固定的模块,谢谢:)
RasmusGP

12
为什么这个问题关闭?这是我搜索时遇到的第一个主题,ModuleNotFoundError: No module named 'tkinter'我认为此处的内容相关。
ScottMcC

13
嘿Googler在Ubuntu上!sudo apt-get install python3-tk ; 所有归功于以下巫师harrypotter0,但该注释略微不足为人;)
两位炼金术士

Answers:


329

您可能需要使用以下一种(或类似的方式)安装它:

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

我已经使用Tkinter一段时间了。您为什么不尝试一下,让我知道它是否有效?

try:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter 
except ImportError:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here

这是参考链接,这是文档

最好按照这里的建议检查版本:

if sys.version_info[0] == 3:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here
else:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter

否则你会得到错误 ImportError: No module named tkinter

编辑1:为了使这个答案更通用,我从评论中借用了以下内容。在Fedora上,请使用以下任一命令

sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64

要么

sudo dnf install python3-tkinter

您可以在python脚本#!/ usr / bin / env python3中使用shebang
Shigiang Liu

1
那些使用Fedora的用户运行以下命令进行安装:-sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat

是大写字母的变化(从Tkinter到tkinter)使我着迷-现在每个人都需要更新所有示例代码:)
Guy Starbuck

如果它是标准python接口,为什么需要安装?
Marko

添加到@DevendraBhat评论的内容。在fedora中,您可以使用“ sudo dnf install python3-tkinter”进行安装。
凯利·邦


8

对于Windows 10,重要的是要在Python中签入安装可选功能“ tcl / tk和IDLE”。否则,您将收到ModuleNotFoundError:没有名为'tkinter'的模块。就我而言,在Python安装后无法通过“ pip install tkinter”之类的方式安装tkinter


没错,Python“嵌入式zip文件”不包含tk,我们应该下载“可执行安装程序”,并且不要忘记选择选项“ tcl / tk和IDLE”
tinyhare

5
您可以修改python安装,再次启动python安装程序并选择“修改”。此时,您可以选中“ tcl / tk和IDLE”复选框,并获取所需的模块。
塞尔吉奥·莫斯塔比里尼

5

对于 使用VSCode或PyCharm和Python 3.7.4的Windows 10-确保在安装中勾选了Tk。我尝试import tkinter as xyz使用较高/较低的tk以及所有没有运气的变体

起作用的是:

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()

我认为直接导入_tkinter没有任何作用。tkinter自动将其导入。
布赖恩·奥克利

@BryanOakley 我认为这没有任何作用。我可以保证所有可以解决的问题,而且至少还可以处理5个其他问题。那一定是个错误。
杰里米·汤普森

3

您可能需要为您的特定版本安装,当我使用许多版本的python,而在virtualenv中使用例如python 3.7的一个版本未导入tkinter时,我已经知道需要这样做,因此我必须为该版本安装它特别。

例如

sudo apt-get install python3.7-tk 

不知道为什么-但这已经发生了。


2

确保在运行python代码时,它位于python3上下文中。我遇到了同样的问题,我要做的就是输入以下命令:

sudo python3 REPLACE.py

sudo python REPLACE.py

后一个代码不正确,因为tkinter在python1或python2中显然不可用。


1

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

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

sudo apt-get install python3-tk 

然后检查您是否正在使用开源操作系统

检查以下路径中的tkinter模块 / home / python / site-packages / tkinter相应地 更改路径


1

您只需要安装它,然后将其导入项目,如下所示:

此代码导入命令行:

sudo apt-get install python3-tk 

导入tkinter后,您的项目:

from tkinter import *




0

---------在PYTHON 2.7上工作------------

安装以下所有软件包

sudo apt-get install git
sudo apt-get install python-tk
sudo apt-get install python-pip
sudo apt install picolisp
sudo -H pip2 install --upgrade pip
sudo pip install -I pillow
sudo apt-get install python-imaging-tk
sudo apt-get install python-tk

0

tkinter应该带有最新的python,我不认为它是python 2附带的。我有同样的问题,但是一旦我升级到python 3.8,就安装了tkinter


-1

在下面使用。

from tkinter import *
root=Tk()
.....
root.mainloop()

1
请参阅“ 解释完全基于代码的答案 ”。尽管从技术上讲这可能是正确的,但并不能解释为什么它可以解决问题或应作为选择的答案。除了帮助解决问题,我们还应该进行教育。
锡人
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.