Tkinter:“Python 可能未针对 Tk 配置”[重复]

2025-02-10 08:57:00
admin
原创
69
摘要:问题描述:今天我想开始使用 Tkinter,但遇到了一些问题。Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) [GCC 4.4.5] on linux2 Type "help", "copyright", "cre...

问题描述:

今天我想开始使用 Tkinter,但遇到了一些问题。

Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

那么,如何配置我的 Python 3.2 以与 Tkinter 一起工作?


解决方案 1:

适用于 Linux、Windows (WSL/Ubuntu) 和 MacOS 的解决方案

尝试了很多方法后,最终结果是这样的:

$ brew install python-tk

解决方案 2:

在 Arch/Manjaro 下只需安装包tk

sudo pacman -S tk

解决方案 3:

在构建 Python 之前安装tk-devel(或类似名称的包)。

解决方案 4:

为了使其在 Ubuntu 16.04 和 18.04 上运行pyenv,我必须:

$ sudo apt-get install python-tk python3-tk tk-dev

然后安装我想要的 Python 版本:

$ pyenv install 3.6.2

然后我就可以正常导入 tkinter 了:

import tkinter

解决方案 5:

根据http://wiki.python.org/moin/TkInter

如果失败并显示“没有名为 _tkinter 的模块”,则需要修改 Python 配置以包含此模块(这是用 C 实现的扩展模块)。不要编辑Modules/Setup(它已过期)。您可能必须安装 Tcl 和 Tk(使用 RPM 时,还要安装 -devel RPM)和/或编辑 setup.py 脚本以指向安装 Tcl/Tk 的正确位置。如果您在默认位置安装 Tcl/Tk,只需重新运行“make”即可构建 _tkinter 扩展。

解决方案 6:

由于我暂时还不能发表评论,以下是我对另一篇文章的回答:

由于我仍在使用 python 3.9,因此此代码对我有用:

brew install python-tk@3.9

如果使用brew install python-tkbrew 将安装python-tk@3.10,它是 key-only

解决方案 7:

因此似乎很多人都遇到过这个问题(包括我),我发现错误在于编译 python 时我的系统上没有安装 Tkinter。

这篇文章描述了如何通过以下方式解决这个问题:

  1. 删除虚拟环境/python 发行版

  2. 安装 Tkinter sudo apt-get install tk-dev(对于 deb) 或sudo pacman -S tk(对于 arch/manjaro)

  3. 然后再次进行python的编译。

这对我来说非常有效。

解决方案 8:

如果你在 Linux 上使用https://asdf-vm.com/管理 python ,那么:

Fedora

$ asdf uninstall python 3.10.10
$ sudo dnf install tk-devel
$ asdf install  python 3.10.10

Ubuntu

$ asdf uninstall python 3.10.10
$ sudo apt-get install tk-dev
$ asdf install  python 3.10.10

苹果操作系统

$ asdf uninstall python 3.10.10
$ brew install python-tk
$ asdf install  python 3.10.10

这是因为使用 asdf 安装 python 会导致它编译 python 核心的某些部分。如果某些东西当时不存在,那么它们就不会被包含/启用。因此您需要使这些东西存在,然后删除并再次安装 python。

解决方案 9:

python-tk我也遇到了类似的问题。我通过在我的系统中安装解决了它。

Mac 的命令:brew install python-tk

解决方案 10:

在 Fedora 上使用 Python 2.7 时遇到了同样的问题。结果发现需要一些额外的软件包:

sudo dnf install tk-devel tkinter

安装软件包后,这个hello-world示例在 Python 2.7 上似乎运行良好:

$ cat hello.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
$ python --version
Python 2.7.8
$ python hello.py

通过X11转发,它看起来像这样:

通过 X11 实现 Hello World

请注意,在 Python 3 中,模块名称是小写的,并且可能需要其他包......

from tkinter import *

解决方案 11:

哦,我只是按照 Ignacio Vazquez-Abrams 建议的解决方案操作,即在构建 python 之前安装 tk-dev。(在 Ubuntu 16.04 上从源代码构建 Python-3.6.1。)

虽然我昨天已经构建了预编译的对象和二进制文件,但我没有清理这些对象,而是在相同的构建路径上重新构建。而且它运行良好。

sudo apt install tk-dev
(On the python build path)
(No need to conduct 'make clean')
./configure
make
sudo make install

就是这样!

解决方案 12:

sudo apt-get install python3-tk

解决方案 13:

安装 Tkinter


python -m pip install tk-tools

或者

sudo apt install python3-tk

代码

from tkinter import *

root = Tk()
root.title('My App')
# Code
root.mainloop()

解决方案 14:

现在我明白了 ubuntu 上发生了什么,

请按照以下步骤解决问题

  1. 检查你的 Python 版本python3 --version

  2. 假设你有 Python 3.10

  3. 然后使用下面的命令安装 Python 版本的 Python-tk

  4. sudo apt install python3.10-tk

如果你有 python3.8 那么很简单sudo apt install python{"use your python version here"}-tk

解决方案 15:

如果你使用Manjaro(Arch Linux),请在终端中运行以下命令

sudo pacman -S tk

解决方案 16:

我认为对此最完整的答案是在此处找到的可接受答案:

如何让 tkinter 与 Ubuntu 的默认 Python 2.7 安装一起工作?

我在解决这个问题上花了很长时间之后才找到答案,所以希望我可以为其他人省去麻烦。

我发现这个旧的错误报告被视为无效,其中提到了我遇到的确切问题,我有 Tkinter.py,但它找不到模块 _tkinter:http ://bugs.python.org/issue8555

我使用 apt-get 安装了 tk-dev 包,并在 Python2.7.3 目录中使用 ./configure、make 和 make install 重建 Python。现在我的 Python2.7 可以导入 Tkinter 了,耶!

我有点生气,因为 Python 安装文档中根本没有提到 tk-dev 包……下面是有关 Python 中缺少模块的另一个有用资源,如果像我一样,有人发现他们缺少的不仅仅是 _tkinter。

解决方案 17:

对于使用 Windows 和 Windows Subsystem for Linux 的任何人,请确保当您从命令行运行 python 命令时,它不会意外地从 WSL 运行 python 安装!这让我现在很头疼。您可以对此进行快速检查,如果即使您在 powershell 中也

which <python command you're using>

打印出类似的内容/usr/bin/python2,那么可能就是发生了什么。

解决方案 18:

我在 python 2.7.9 上遇到了这个问题。

为了解决这个问题,我安装了 tk 和 tcl,然后重建 python 代码并重新安装,在配置期间,我通过以下方式明确设置了 tk 和 tcl 的路径:

./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/lib64 -ltcl8.5 -L/usr/lib64 -ltk8.5"

另外,还有一篇关于 Python 安装过程的完整文章:从源代码构建 Python

解决方案 19:

如果你在运行 Amazon Linux OS 的 AWS 实例上运行,那么对我来说解决这个问题的神奇命令是

sudo yum install tkinter

如果你想确定你的 Linux 版本,请尝试cat /etc/*release

解决方案 20:

当更高版本的 python(例如 2.7.13)与发布的 python 版本“一起”安装在 /usr/local/bin 中,并且后续的操作系统升级(例如,Ubuntu 12.04 --> Ubuntu 14.04)无法删除那里更新的 python 时,也会出现这种症状。

为了解决这种不兼容性,必须

a) 删除 /usr/local/bin 中更新的 python 版本;

b) 卸载 python-idle2.7;以及

c)重新安装python-idle2.7。

解决方案 21:

即使在安装了 python-tk、python3-tk 之后,我仍然收到错误,您的 python 没有为 Tk 配置。

所以我另外安装了 tk8.6-dev,然后我再次构建我的 Python,再次运行以下命令:make、make install。

当我这样做时,我看到屏幕上的消息表明它正在构建 _tkinter 和相关模块。完成后,我尝试“导入 tkinter”,它成功了。

解决方案 22:

就我而言,pyenv 已安装,但我没有意识到。安装正确版本后,我需要通过 pyenv 卸载并重新安装 python 版本来修复 tkinter 配置python3.x-tk

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用