如何在Windows上使用pip或easy_install安装tkinter

140

IDLE 报错并显示无法导入 tkinter

有没有一种简单的方法可以通过 pipeasy_install 安装 tkinter

似乎有很多包名在这方面飞来飞去...

这和其他带有 tkinter-pypy 的变体都不起作用。这是我运行的内容:

pip install python-tk

我正在使用Python 2.7的Windows版本,但我没有apt-get或其他系统包管理器。

14个回答

123

Tkinter库已经与每个Python安装程序一起内置。由于您使用的是Windows系统,我相信您是通过其网站上的二进制文件安装Python的?

如果是这样,那么最可能的情况是您输入的命令有误。正确的命令应该是:

import Tkinter as tk

请注意Tkinter开头的大写"T"。
对于Python 3,
import tkinter as tk

2
导入 Tkinter 作为 tk 得到以下错误信息:Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "C:\Python27\lib\lib-tk\Tkinter.py", line 38, in <module> import FixTk File "C:\Python27\lib\lib-tk\FixTk.py", line 65, in <module> import _tkinter ImportError: DLL 加载失败:%1 不是有效的 Win32 应用程序。 - Dirk Calloway
7
对于导入语句:Python 2.* 使用大写字母 'T' 的 Tkinter,Python 3.* 则使用小写字母 't' 的 tkinter。 - robsn
这在我使用的Windows 10和64位Python 3.7.0上有效。 - Ole_S
1
更简单、更好的答案 @IcyFlame - Jason Li

55

如果您正在使用virtualenv,可以使用sudo apt-get install python-tk(Python2),sudo apt-get install python3-tk(Python3)安装tkinter,这样它将在虚拟环境中正常工作。


2
但是如果我们没有sudo访问权限并且在自己的虚拟环境中,这种方法就不起作用。 - ComputerScientist
1
在我的虚拟环境中,"sudo apt-get install python-tk" 对我起了作用并解决了我的问题。谢谢! - Thom Ives
13
这并没有回答问题,因为原帖提到的是在Windows上工作。这个回答适用于Linux的问题。 - Frederik.L

49

我能看到两种解决方案:

1)按照Docs-Tkinter install for Pythonfor Windows)的步骤进行操作:

Tkinter(以及自Python 3.1起,ttk)已包含在所有标准Python发行版中。重要的是使用支持Tk 8.5或更高版本和ttk的Python版本。我们建议从ActiveState安装“ActivePython”发行版,它包括您需要的一切。

在您的Web浏览器中,转到Activestate.com,沿着链接下载适用于Windows的ActivePython Community Edition。确保您正在下载3.1或更新版本,而不是2.x版本。

运行安装程序并跟随操作。您将获得一个新的ActivePython安装程序,例如位于C:\python32。然后,您应该能够通过Windows命令提示符或开始菜单的“运行...”命令运行Python shell。

% C:\python32\python

这应该会为您提供Python命令提示符。从提示符处,输入以下两个命令:
>>> import tkinter
>>> tkinter._test()

这应该会弹出一个小窗口;窗口顶部第一行应该显示 "这是Tcl/Tk版本8.5",请确保不是8.4! 2) 卸载64位Python并安装32位Python。

对于import _tkinter,我收到以下错误信息:Traceback(最近的调用最后): File“<交互式输入>”,第1行,在<module>中 ImportError:DLL加载失败:%1不是有效的Win32应用程序。 - Dirk Calloway
Python 2.7.5 64位版本 - Dirk Calloway
1
对于 Python 3,当前版本是 8.6。 - user2584621

27

安装时,请确保在Tcl/Tk下选择将被安装到硬盘上。如果左侧有一个叉,则Tkinter将不会被安装。

enter image description here

对于Python 3也是一样的:

enter image description here


1
谢谢你的提醒!我完全忘记了这两个是耦合的。 - Energya
这是针对 OP 的使用情况实际上正确的答案。 - Karl Knechtel

19

当您在Windows上安装Python时,请使用标准选项或安装它要求的所有内容。我遇到了错误,因为我取消选择了tcl。


3
就是这样!我在安装过程中取消了“tk/tcl和IDLE”选项,因为我不想要IDLE。我重新安装了Python,现在检测到了Tkinter。 - matt-pielat
14
如果是这种情况,可以通过修改安装并勾选tk/tcl来添加tkinter。 - Prof

7

我来这里寻找关于同样问题的答案,但以上所有答案都没有真正回答这个问题!

所以经过一些调查,我发现: 至少有一个针对Python 3.x的包:

pip3 install pytk

问题是,这只安装了 Python 部分,并没有在您的操作系统中安装 tkinter 库,所以答案是您无法通过 pip 完全安装它。https://tkdocs.com/tutorial/install.html 个人认为这非常令人恼火,因为我正在打包一个使用 tkinter 的 Python 应用程序,希望通过 pip 进行安装,而我正在寻找一种方法让 pip 确保已安装 tkinter,但答案是我不能这样做,我必须指示用户在未安装 tkinter 的情况下进行安装,这对于终端用户来说是非常糟糕的体验,他们不应该需要知道或关心 tkinter 是什么才能使用我的应用程序。

pytk 不会 安装任何相关内容。它仅仅是一个包装器,旨在为 tkinter 标准库提供更 Pythonic 的接口(该库旨在模仿 Tcl/Tk 接口)。 - Karl Knechtel

4

我在Linux上也遇到过同样的问题,通过以下方式解决了问题。(我的系统是基于Debian 9的Bunsen Helium)

$ sudo apt-get install python3-tk


这在我的Ubuntu 18.04服务器上有效,但为什么呢?Linux的Python发行版没有附带tkinter吗? - Jesse Reza Khorasanee
很长一段时间,它们只使用Python 2。 - AAAfarmclub
2
没有回答问题 - OP正在运行Windows。 - TheTechRobo the Nerd

3

在Python中,Tkinter是一个默认的包,您可以修复安装并选择Tcl/Tk。运行此操作后,DDL应该被安装如下所示:enter image description here


2
我作为顶部答案的补充,因为我没有发现有用的文档。
如果在安装窗口期间选择了它,则tkinter已经与python一起打包安装在Windows上。
解决方案是修复安装(通过卸载GUI也可以),并选择此次安装tk。在此过程中,您可能需要指向或重新下载二进制文件。直接从activestate下载对我没有起作用。
这是Windows上人们经常遇到的问题,因为如果不知道它是什么,就很容易不想安装TCL / TK,但Matplotlib等需要它。

1
顺便提一下,matplotlib可以与PyQt5(以及其他几个图形后端)一起使用,而不是tkinter,并且可以通过pip install pyqt5轻松完整地安装PyQt5。 - blubberdiblub

1

我试图升级Python内置的tkinter,发现这种方法很有用:

conda install -c anaconda tk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接