ImportError:没有名为“_tkinter”的模块,请安装 python3-tk 包

ImportError:没有名为“_tkinter”的模块,请安装 python3-tk 包

之后sudo apt-get upgrade,我收到以下错误:

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "/usr/lib/python3.5/tkinter/__init__.py", line 36, in <module>
    import _tkinter
ImportError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in <module>
    raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package

我已经python3-tk安装了。我已经尝试过清除并安装它。没有任何变化。(有趣的是,/usr/lib/python3.5/tkinter清除后仍然存在……手动删除它只会导致另一个错误)

我该如何解决这个问题?

没有解决问题:

$ sudo apt-get install tk8.6-dev
$ sudo apt-get install python3-tkinter # does not exist
$ sudo apt-get install python3-tk  # exists and is installed

评论答案

$ ls -l /usr/lib/python3.5/tkinter
total 372
-rw-r--r-- 1 root root   1791 Nov 28 17:50 colorchooser.py
-rw-r--r-- 1 root root   1412 Nov 28 17:50 commondialog.py
-rw-r--r-- 1 root root   1493 Nov 28 17:50 constants.py
-rw-r--r-- 1 root root   1568 Nov 28 17:50 dialog.py
-rw-r--r-- 1 root root  11488 Nov 28 17:50 dnd.py
-rw-r--r-- 1 root root  14502 Nov 28 17:50 filedialog.py
-rw-r--r-- 1 root root   6581 Nov 28 17:50 font.py
-rw-r--r-- 1 root root 162249 Nov 28 17:50 __init__.py
-rw-r--r-- 1 root root    148 Nov 28 17:50 __main__.py
-rw-r--r-- 1 root root   3701 Nov 28 17:50 messagebox.py
drwxr-xr-x 2 root root   4096 Nov 30 08:12 __pycache__
-rw-r--r-- 1 root root   1814 Nov 28 17:50 scrolledtext.py
-rw-r--r-- 1 root root  11424 Nov 28 17:50 simpledialog.py
-rw-r--r-- 1 root root  77014 Nov 28 17:50 tix.py
-rw-r--r-- 1 root root  55839 Nov 28 17:50 ttk.py

移动目录时,我得到:

$ sudo mv tkinter tkinter-backup
$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'tkinter'

更多信息

$ which python3
/usr/bin/python3

$ apt list python3
Listing... Done
python3/xenial,now 3.5.1-3 amd64 [installed]

答案1

python3-tk 软件包支持 Python 版本 3.6 和 3.7,不支持 3.5(这是您的默认版本)。如果您的工作支持该版本,请将您的默认 Python 更改为受支持的版本。否则,如果您确实需要版本 3.5,则需要查找支持文件。

答案2

就我而言,我得到了同样的错误“ImportError:没有名为‘_tkinter’的模块”对于 python3.5,尽管做了以下事情: - 安装 python3-tk 和 tkinter-dev - Tkinter 目录在 /usr/lib/python3.5 中可用。

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

文件“/usr/local/lib/python3.5/tkinter/在里面.py”,第 35 行,导入 _tkinter # 如果失败,你的 Python 可能没有配置为 Tk

但是,当我简单地从 /usr/bin 运行 python 时/usr/bin/python3.5从终端,它对我有用!

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

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

答案3

您是否import Tkinter在 Python 程序中尝试过(大写 T)?这对我来说很有用。

相关内容