今天我想开始与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?
答案 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)
尝试了很多东西后,这就是它最终的工作方式:
$ 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转发,它看起来像这样:
请注意,在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描述了如何通过以下方法解决问题:
sudo apt-get install tk-dev
(对于deb)或sudo pacman -S tk
(对于arch / manjaro)安装Tkinter 这为我创造了奇迹。
答案 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;
中更新版本的pythonb)卸载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)