ImportError:未命名为“ _tkinter”,请安装python3-tk软件包


28

我一般是Ubuntu和Linux的新手。

我在笔记本电脑(Windows 10和Ubuntu)上创建了双引导操作系统。

  • 键入:(sudo apt-get install python3-tk甚至python-tk)无效。
  • 尝试安装python3-devor python-devel(没有运气)。
  • 下载Tcl和Tk进行手动安装。

在Windows 10 Bash子系统中,已经包含了Tk和Tcl,所以我认为Ubuntu已经有了它。但是,我想使用Ubuntu桌面开发Python GUI应用程序。

那么,如何安装要在Python 3.5中用于GUI开发的Tcl / Tk?

我已很好地加载了Python 3.5.2,但需要启用GUI模块。

测试Tk是否正常工作的代码是:

  1. 类型 python3
  2. 类型:

    import tkinter   
    tkinter._test()
    
  3. 结果:显示一个GUI弹出窗口 This is a Tcl/Tk version..


3
“我加载了Python 3.5.2” -究竟是什么?如果您运行的是手动安装的python,则使用apt-get安装系统python软件包不太可能帮助
steeldriver

1
我看到您对自己的问题的答案是从源代码编译Tcl / Tk,但除非您手动安装Python(即不使用Apt软件包管理器),否则我认为这不是必需的。您能否说明您是否手动安装了Python?安装python3-tk并运行提供的Python代码可在我的系统Python 3上运行
。– edwinksl

Answers:


30

6
注–对于默认为python3.5的python3.6,我必须使用... install python3.6-tk ....
SteveJ

+1。对于那些阅读此文的人,我会补充说tkinter似乎没有PyPI软件包,因此,如本答案所述,使用Ubuntu软件包管理器可能是下一个最佳选择。
dpritch '18

1
@dpritch在Universe存储库中有一个名为[pypibrowser](packages.ubuntu.com/…的软件包,它提供了我相信您正在寻找的功能。干杯!
Geek Elder

python3-tkinter对我来说dnf,至少在Fedora 上。
Pysis

@Pysis对您可能遇到的困惑感到抱歉。像整个网站这样的答案都是关于Ubuntu的。您可能会从这次旅行中受益第一句话很清楚,如果没有,可以在这里进一步清楚干杯!
极客长老

26

对于以Python 3.5作为“系统” python(Ubuntu)的python 3.6虚拟环境,我必须安装tk 3.6进行匹配;

sudo apt-get install python3.6-tk

我在ubuntu中的默认python是3.5,所以当使用venv for 3.6时,会出现导入错误。让我发疯了一段时间。

[编辑:随着这个问题的发展]

通常,似乎如果使用的虚拟环境的Python版本与基本计算机的版本不同,则必须为虚拟环境中使用的python版本安装tk。

sudo apt install python3.x-tk

3.x将与虚拟环境的版本匹配。

[编辑]

可能有必要添加tk的存储库。以我的经验,它是我提取python3.6的相同存储库,但是可能会随着时间而改变;

sudo add-apt-repository ppa:deadsnakes/ppa

1
有趣。据我所知,目前仓库中不存在python3.6-tk,您可能甚至会解释从哪个PPA安装它。
年长者怪杰'18

1
我进行了进一步的编辑,以使其更具最新性。
年长者极客

3
最后!这是为我工作的时候sudo apt-get install python3-tk没有。谢谢
彼得·

2
对于python 3.7,我不得不使用sudo apt-get install python3.7-tk它来使其工作
ilias

就是这样 十二页的Stackoverflow中唯一对我有用的解决方案。
Avio

0

从源代码安装时,这可能会很有趣(大多数python用户不会这样做):

安装tcl和tk之后

返回您的Python版本,执行make。并且,如果python存在多个版本,请执行make altinstall

  1. 打开Python3.5
  2. 类型:

    import tkinter
    tkinter._test()
  3. 结果正常-弹出式GUI打开并按预期工作。


2
-1这与大多数人无关,因为大多数人将通过软件包管理器而不是从源代码进行安装。
RockJake28年

添加了简介,因此它不会造成混淆,仍然可以帮助某人
MIT

0

就我而言,尽管执行以下操作,但在python3.5中却遇到了与“ ImportError:No module named'_tkinter'”相同的错误:-安装python3-tk和tkinter-dev-Tkinter目录位于/ usr / lib / python3.5。

观察到的错误来自以下文件:

导入_tkinter中的文件“ /usr/local/lib/python3.5/tkinter/ init .py”,第35行,#如果失败,则可能未为Tk配置Python

但是,当我像从终端上的/usr/bin/python3.5一样从/ usr / bin运行python时,它对我有用

简而言之,只需确保从终端运行的python版本已安装并配置了tkinter :)

我的系统上安装了Ubuntu16.04,它带有默认的python2.7和python3.5


0

仅安装库文件可能无法工作,因为您想使用库本身而不进行开发。

这为我工作:

$ sudo apt install tk8.6-dev

尽管这可以回答问题,但您也许可以扩展它以解释以上命令的作用以及为什么它可以解决问题?
Joshua Besneatte

ismailarilik什么@JoshuaBesneatte想说的是:不要只给请求者的命令,但解释的命令做的,为什么他/她应该应用它。就目前而言,由于缺乏质量,您的答案很可能会被删除... :-(
Fabby
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.