ImportError:没有名为'Tkinter'的模块

Ras*_*sGP 167 python tkinter

出于某种原因,我无法使用Tkintertkinter模块.在python shell中运行以下命令后

import Tkinter
Run Code Online (Sandbox Code Playgroud)

要么

import tkinter
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

import Tkinter
Run Code Online (Sandbox Code Playgroud)

要么

import tkinter
Run Code Online (Sandbox Code Playgroud)

可能是什么原因以及我们如何解决它?

d-c*_*der 276

我一直在使用Tkinter一段时间.你为什么不尝试这个,让我知道它是否有效?

sudo apt-get install python3-tk 
Run Code Online (Sandbox Code Playgroud)

这是参考链接,这是doc

最好按照此处的建议检查版本:

try:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter 
except ImportError:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here
Run Code Online (Sandbox Code Playgroud)

或者你会得到错误'ImportError:没有名为tkinter的模块'

编辑1:

在Linux发行版上尝试以下内容,让我和其他人知道,如果它适用于Python3,请提供答案.

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
Run Code Online (Sandbox Code Playgroud)

  • 对于 macOS,“brew install python-tk” (54认同)
  • 如果是[标准Python接口](https://en.wikipedia.org/wiki/Tkinter)为什么还需要安装它? (6认同)
  • 正是大小写的变化(Tkinter 到 tkinter)让我着迷 - 现在每个人都需要更新所有示例代码:) (4认同)
  • 使用 Fedora 的用户运行此命令进行安装:- sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64 (2认同)
  • 最后对于Windows和win32,安装时记得检查`Tcl support for Python 3.11`。 (2认同)

Bur*_*lid 62

当您使用Python 3时,该模块已重命名为tkinter,如文档中所述:

注意Tkinter已经在Python 3中重命名为tkinter.2to3工具在将源代码转换为Python 3时会自动调整导入.


小智 45

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

Debian/Ubuntu:

sudo apt install python3-tk -y  
Run Code Online (Sandbox Code Playgroud)

软呢帽:

sudo dnf install -y python3-tkinter
Run Code Online (Sandbox Code Playgroud)

拱:

sudo pacman -Syu tk --noconfirm 
Run Code Online (Sandbox Code Playgroud)

REHL/CentOS6/CentOS7:

sudo yum install -y python3-tkinter
Run Code Online (Sandbox Code Playgroud)

打开SUSE:

sudo zypper in -y python-tk
Run Code Online (Sandbox Code Playgroud)

  • 仍然: `import _tkinter # 如果失败,您的 Python 可能未配置 Tk ModuleNotFoundError: No module named '_tkinter'` (3认同)
  • 请注意,这似乎并不能修复现有的虚拟环境,而只能修复此后创建的虚拟环境。 (2认同)

小智 25

对于 Mac 使用:

brew install python-tk
Run Code Online (Sandbox Code Playgroud)


小智 19

对于 Windows 10,重要的是在 Python 安装中检查可选功能“tcl/tk 和 IDLE”。否则你会得到一个ModuleNotFoundError: No module named 'tkinter'。就我而言,在 Python 安装后无法使用“pip install tkinter”之类的东西安装 tkinter

  • 您可以修改 python 安装,再次启动 python 安装程序并选择“修改”。此时您可以选中“tcl/tk 和 IDLE”复选框并获取您需要的模块。 (12认同)
  • 你是对的,Python“嵌入式zip文件”不包含tk,我们应该下载“可执行安装程序”并且不要忘记选择选项“tcl/tk和IDLE” (2认同)

小智 14

安装 Tkinter

python -m pip install tk-tools
Run Code Online (Sandbox Code Playgroud)

或者

sudo apt install python3-tk
Run Code Online (Sandbox Code Playgroud)

  • 我很困惑为什么这里的多个答案建议使用“pip”来安装“依赖于”内置“tkinter”模块的任意 PyPI 模块(例如此处的“tk-tools”,或下面答案中的“tkintertable”)作为内置“tkinter”模块不可用的解决方案。这似乎不太可能有帮助,即使它确实以某种方式起作用,它也是一个非常丑陋的解决方案,因为你留下了你可能不想要的任意第三方模块。 (4认同)
  • 所有 pip 命令都不适合我(在 python 3.8 virtualenv 中)。所有有效的都是合适的。 (3认同)
  • **不要使用点。它不能帮助解决问题。** (2认同)

deM*_*ler 10

您可能需要为您的特定版本安装,我知道当我使用许多版本的 python 和一个版本在 virtualenv 中使用例如 python 3.7 没有导入 tkinter 我必须为那个版本安装它时需要这样做具体来说。

例如

sudo apt-get install python3.7-tk 
Run Code Online (Sandbox Code Playgroud)

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


Jer*_*son 7

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

有效的是:

import tkinter
import _tkinter
tkinter._test()
Run Code Online (Sandbox Code Playgroud)

行动中的一个例子:

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()
Run Code Online (Sandbox Code Playgroud)

  • 我认为直接导入 `_tkinter` 没有任何效果。`tkinter` 会自动导入它。 (4认同)
  • 为什么需要导入_tkinter?这要解决什么问题?这个问题是如何解决的呢?编程应该是确定性的,而不是随机尝试事物。在 Ubuntu 20.04 上,我可以删除这一行并且脚本可以工作。 (3认同)
  • 这可能值得一个新问题。这是 Windows 10 特定的,虽然 python 是 x 平台,但它不是无缝的。 (2认同)

小智 7

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

brew install python-tk@3.9
Run Code Online (Sandbox Code Playgroud)

这为我修好了。


Fre*_*ger 6

在 CentOS7 上,要使其与 Python2 一起工作,我必须这样做:

yum -y install tkinter
Run Code Online (Sandbox Code Playgroud)

在这里注意到这一点是因为我以为会有一个 pip 包,但实际上需要安装一个 rpm。


Ude*_*esh 6

$ sudo apt-get install python3.10-tk
Run Code Online (Sandbox Code Playgroud)


小智 5

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

从以下代码检查是否正确安装了 Tk 模块

sudo apt-get install python3-tk 
Run Code Online (Sandbox Code Playgroud)

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

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


Owe*_*ece 5

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

sudo python3 REPLACE.py
Run Code Online (Sandbox Code Playgroud)

相对

sudo python REPLACE.py
Run Code Online (Sandbox Code Playgroud)

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

  • Python 不会,但如果您使用的是 Linux 并且将 python 文件放在受限制的部分中,它会有所帮助。 (3认同)

归档时间:

查看次数:

367876 次

最近记录:

5 年,11 月 前