Tkinter:“可能没有为Tk配置Python”

Tkinter:“可能没有为Tk配置Python”,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,今天我想开始和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

今天我想开始和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一起使用呢?

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

根据:

如果在没有名为_tkinter的模块的情况下失败,则需要修改Python配置以包含此模块,此模块是用C实现的扩展模块。不要编辑模块/设置,因为它已过时。使用RPM时,您可能必须安装Tcl和Tk,同时安装-devel RPM和/或编辑setup.py脚本以指向安装Tcl/Tk的正确位置。如果在默认位置安装Tcl/Tk,只需重新运行make就可以构建_tkinter扩展


Python2.7在Fedora上也有同样的问题。结果是需要一些额外的软件包:

sudo dnf install tk-devel tkinter
安装包之后,这个示例在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转发,看起来是这样的:

注意,在Python3中,模块名是小写的,可能需要其他包

from tkinter import *

在Arch/Manjaro下,只需安装程序包tk:


我认为最完整的答案是公认的答案:

我在这个问题上花了太多时间才发现,所以 希望我能帮别人省去麻烦

我发现这个旧的错误报告被认为是无效的,它提到了确切的错误 我遇到的问题是,我有Tkinter.py,但它找不到 模块\u tkinter:

我使用apt-get安装了tk-dev包,并使用 ./Python2.7.3目录中的配置、制作和安装。和 现在我的Python2.7可以导入Tkinter了,耶

我有点恼火,因为在本文中根本没有提到tk-dev包 Python安装文档。。。。下面是另一个有用的例子 如果像我一样,有人应该 发现他们丢失的不止一个


当Python2.7.13的更高版本(例如,与python版本一起安装在/usr/local/bin中)以及随后的操作系统升级(例如Ubuntu 12.04->Ubuntu14.04)未能删除更新的python时,也会出现这种症状

要解决这种不兼容性,必须

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

b卸载python-idle2.7;及


c重新安装python-idle2.7。

哦,我刚刚遵循了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
就这样

为了在Ubuntu 16.04和18.04上使用pyenv,我必须:

sudo apt-get install python3-tk
$ sudo apt-get install python-tk python3-tk tk-dev
然后安装我想要的Python版本:

$ pyenv install 3.6.2
然后我可以很好地导入tkinter:

import tkinter

我在Python2.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安装过程的一整篇文章:

对于任何使用Windows和Windows Subsystem for Linux的人,请确保在从命令行运行python命令时,不会意外地从WSL运行python安装!刚才这让我很头疼。你能做的快速检查只是
如果您在运行Amazon Linux操作系统的AWS实例上运行,那么为我解决这个问题的神奇命令是

sudo yum install tkinter

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

,很明显,许多人似乎都有这个问题,包括我在内,我发现问题在于编译python时我的系统上没有安装Tkinter

描述如何通过以下方式解决此问题:

删除虚拟环境/python发行版 使用sudo apt get安装tk dev for deb或sudo pacman-S tk for arch/manjaro 然后继续再次编译python。
这对我来说是一个奇迹。

即使在安装了python tk之后,python3 tk我也收到了一个错误,您的python没有为tk配置

所以我额外安装了tk8.6-dev 然后我再次构建Python,再次运行以下命令: 制作 进行安装

当我这么做的时候,我在屏幕上看到消息说它正在构建一个新的和相关的模块。完成后,我尝试了“导入tkinter”,它成功了。

MacOS解决方案 在尝试了一系列事情之后,它最终是这样工作的:

$ brew install python-tk
您也可以尝试使用pip安装它:

$ pip3 install tk

我也面临类似的问题。我通过在我的系统中安装pythontk解决了这个问题


mac命令:brew安装python tk。

尽管这并不能直接回答您的问题,但如果您希望在Linux上使用最新的python,请使用预编译

二进制文件,比如包含Tkinter的ActivePython,可以节省很多时间。每个Linux发行版都有一个官方的python包。除非您需要特定的东西,否则实际上不鼓励使用第三方二进制文件。也就是说,在python中使用Tk支持可能只需要一两个命令,但我需要知道您运行的是什么风格的Linux。我认为最完整的答案是:在Ubuntu上运行“sudo apt get install Tk dev”,然后重新运行make@pycoder112358:我做了,但它仍然告诉我import恐怖:当我尝试导入tkinter时,没有名为_tkinter的模块。我使用从ubuntu 13.10的源代码编译的python3.4.0。tk-devel是什么?您应该至少对它在这种情况下为什么有用给出一个最低限度的解释。安装模块时,需要在python找到模块之前重建python。如何编辑setup.py脚本?如何重新运行make?我正试图在mac电脑上做这件事,我发现我应该把mac电脑还回去,买一台windows电脑。在我的例子中,这是由tk升级引起的。它仅由matplotlib使用,并且可以进行循环导航:setup.py位于pythonI的源代码目录中。我的计算机中大约有50个setup.py文件,这是正确的吗?sudo:dnf:command not found我是ubuntu,这是区别吗?完美!我在Manjaro上遇到的错误是:ImportError:libtk8.6.so:无法打开共享对象文件:没有这样的文件或目录。在windows上如何?在windows上如何?在windows上如何?这是正确的解决方案,谢谢!我仍然不知道为什么投票最多的答案会让你经历很多困难,甚至没有解释如何去做,而一个简单的命令行就埋在了底部……谢谢你的好话。希望其他人会发现这比所有猜测更有用的是这个线程:/MacOS X所需要的只是brew安装python-tk。brew安装在Catalina上对我很有用
$ pip3 install tk