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

时间:2011-03-28 13:10:45

标签: 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>", 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?

17 个答案:

答案 0 :(得分:66)

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

sudo pacman -S tk

答案 1 :(得分:42)

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

答案 2 :(得分:26)

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

  

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

答案 3 :(得分:13)

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

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

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

$ pyenv install 3.6.2

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

import tkinter

答案 4 :(得分:6)

MacOS 解决方案

尝试了很多东西后,这就是它最终的工作方式:

$ brew install python-tk

您也可以尝试使用 pip 安装它:

$ pip3 install tk

答案 5 :(得分:3)

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

get_post_meta($order->id, '_transaction_id', true)

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

sudo dnf install tk-devel tkinter

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

Hello World through X11

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

$ 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

答案 6 :(得分:2)

我在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安装过程的整篇文章:Building Python from Source

答案 7 :(得分:1)

哦,我刚刚按照解决方案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

就是这样!

答案 8 :(得分:1)

CREATE TABLE `user_account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firm` varchar(45) DEFAULT NULL, # each user belong to a client firm
  `group` varchar(45) DEFAULT NULL, # some users may belong to client group
  `name` varchar(45) DEFAULT NULL, 
  `username` varchar(15) NOT NULL, # USER ID
  `password` varchar(255) NOT NULL,
  `email` varchar(40) NOT NULL,
  `account_creation_date` datetime DEFAULT NULL,
  `active` tinyint(1) DEFAULT '1',
  `token_code` varchar(255) DEFAULT NULL, # for password recovery
  `token_creation_date` datetime DEFAULT NULL, # for password recovery
  PRIMARY KEY (`id`),
  UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `permission` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL, # FOREIGN KEY user_account.user_name
  `association` varchar(45) DEFAULT NULL, # Firm or Group
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

答案 9 :(得分:1)

对于使用Windows和Windows子系统Linux的任何人,请确保从命令行运行python命令时,它不会意外地从WSL运行python安装!这让我很头疼。你可以做的快速检查只是为了 which <python command you're using>
如果打印出像/usr/bin/python2这样的内容,即使您已经使用了PowerShell,那么这可能是正在发生的事情。

答案 10 :(得分:1)

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

This post描述了如何通过以下方法解决问题:

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

这为我创造了奇迹。

答案 11 :(得分:0)

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

How to get tkinter working with Ubuntu's default Python 2.7 install?

  

我花了太多时间在这个问题上花了很多时间,所以   希望我可以省去别人的麻烦。

     

我发现这个旧的错误报告被认为是无效的,提到了确切的   我遇到的问题,我有Tkinter.py,但它无法找到   module _tkinter:http://bugs.python.org/issue8555

     

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

     

我有点恼火的是tk-dev软件包根本没有提到   Python安装文档....下面是另一个有用的   如果像我一样,有人应该在Python中丢失模块的资源   发现他们比_tkinter更缺少。

答案 12 :(得分:0)

当在“/ usr / local / bin”中安装更高版本的python(例如2.7.13)以及“发布python版本”,然后进行后续操作系统升级时,也会出现此症状(比如说) ,Ubuntu 12.04 - &gt; Ubuntu 14.04)无法删除那里更新的python。

要解决这种不兼容问题,必须

a)删除/ usr / local / bin;

中更新版本的python

b)卸载python-idle2.7;和

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

答案 13 :(得分:0)

如果您正在运行Amazon Linux OS的AWS实例上运行,则为我解决此问题的魔术命令是

sudo yum install tkinter

如果要确定您的Linux构建,请尝试cat /etc/*release

答案 14 :(得分:0)

即使在安装python-tk之后,python3-tk我也收到错误消息,未为Tk配置python。

所以我还安装了tk8.6-dev 然后,我再次构建我的Python,再次运行以下命令: 使, 安装。

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

答案 15 :(得分:0)

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

mac 命令:brew install python-tk

答案 16 :(得分:-1)

need为python3安装tkinter。

在Fedora上,pip3 install tkinter --user返回Could not find a version that satisfies the requirement ...,所以我必须commanddnf install python3-tkinter。这解决了我的问题