Tkinter:"可能没有为Tk配置Python"

Mac*_*rko 65 python tkinter python-3.x

今天我想开始与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
Run Code Online (Sandbox Code Playgroud)

那么如何配置我的Python 3.2以使用Tkinter?

Jab*_*bba 71

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

sudo pacman -S tk
Run Code Online (Sandbox Code Playgroud)

  • 完善!我在Manjaro上遇到的错误和修复的错误是:`ImportError:libtk8.6.so:无法打开共享对象文件:没有这样的文件或目录`. (5认同)

Ign*_*ams 44

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

  • 在Ubuntu上运行'sudo apt-get install tk-dev',然后重新运行make (22认同)
  • 什么是'tk-devel`?在这种情况下,您应该至少给出一个简单的解释,说明为什么它应该有用. (7认同)
  • 作为对其他人的评论,"在构建Python之前"在这里很重要.安装模块时,需要重新构建python才能找到模块. (6认同)

San*_*nda 28

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

如果失败并显示"No module named _tkinter",则需要修改Python配置以包含此模块(这是在C中实现的扩展模块).千万不能编辑模块/设置(这是过时的).您可能必须安装Tcl和Tk(使用RPM时,也要安装-devel RPMs)和/或编辑setup.py脚本以指向安装Tcl/Tk的正确位置.如果您在默认位置安装Tcl/Tk,只需重新运行"make"即可构建_tkinter扩展名.

  • 如何编辑 setup.py 脚本?你如何重新运行make?我正在尝试在 mac 上执行此操作,但我发现我应该退回 mac 并获取一台 Windows 机器。 (4认同)
  • 在我的情况下,这是由`tk`的升级引起的.它只被`matplotlib`使用,可以环游:http://stackoverflow.com/a/4935945/1959808 (3认同)
  • 我的计算机中有大约 50 个 setup.py 文件,哪一个是正确的? (2认同)

sub*_*ker 18

MacOS 解决方案

在尝试了很多事情之后,这就是它最终工作的方式:

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

如果上述方法不起作用,您也可以尝试使用 pip 安装它:

$ pip3 install tk
Run Code Online (Sandbox Code Playgroud)

  • pip3 包 `tk` 是 TensorKit,请参阅[此处](https://pypi.org/project/tk/)。我认为这没有帮助。 (5认同)
  • 在 Catalina 上,brew 安装对我有用 (3认同)
  • Brew 不是“MacOS”的东西。它受 Linux(包括 WSL/Windows 10)和 MacOS 支持。事实上,Linuxbrew 项目已经完全合并到 HomeBrew 中,所以是的;绝对不是“MacOS”的东西。 (3认同)
  • @rainabba,但是当有asdf或可用于操作系统的包管理器时,没有一个有自尊心的Linux用户会使用brew....我的意思是你甚至不能将包固定到带有brew的版本.... (2认同)

Pau*_*est 16

为了pyenv在Ubuntu 16.04上使用它,我不得不:

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

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

$ pyenv install 3.6.2
Run Code Online (Sandbox Code Playgroud)

然后我可以很好地导入tkinter:

import tkinter
Run Code Online (Sandbox Code Playgroud)

  • 直觉上我认为你只需要安装 `tk-dev` 包就可以工作,但我还没有测试过它,所以我不确定。 (4认同)
  • 对于 MacOS X,您所需要的只是“brew install python-tk”。 (3认同)
  • 它也可以在Ubuntu 18.04上使用。 (2认同)

Jak*_*aes 9

看来很多人(包括我)都遇到了这个问题,我发现问题是编译 python 时 Tkinter 没有安装在我的系统上。

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

  1. 删除虚拟环境/python发行版
  2. 使用sudo apt-get install tk-dev(对于 deb)或sudo pacman -S tk(对于 arch/manjaro)安装 Tkinter
  3. 然后继续编译python。

这对我来说创造了奇迹。


小智 7

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

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

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

如果使用brew install python-tkbrew将安装python-tk@3.10,它是仅密钥的


Vik*_*pta 5

我也面临类似的问题。我通过python-tk在我的系统中安装来解决它。

Mac 的命令:brew install python-tk.


air*_*nix 5

如果您在 Linux 上使用https://asdf-vm.com/管理 python ,则:

软呢帽

$ asdf uninstall python 3.10.10
$ sudo dnf install tk-devel
$ asdf install  python 3.10.10
Run Code Online (Sandbox Code Playgroud)

乌班图

$ asdf uninstall python 3.10.10
$ sudo apt-get install tk-dev
$ asdf install  python 3.10.10
Run Code Online (Sandbox Code Playgroud)

苹果系统

$ asdf uninstall python 3.10.10
$ brew install python-tk
$ asdf install  python 3.10.10
Run Code Online (Sandbox Code Playgroud)

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


归档时间:

查看次数:

105601 次

最近记录:

6 年 前