После 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]
python3-tk пакет имеет поддержку версий 3.6 и 3.7 Python, не 3.5, который является Вашим значением по умолчанию. Измените свой Python по умолчанию на версию, поддерживаемую если Ваши поддержки работы это. Иначе при реальной необходимости в version3.5 необходимо будет разыскать файлы поддержки.
В моем случае я получал ту же ошибку как "ImportError: Никакой модуль, названный '_tkinter'" для python3.5 несмотря на выполнение следующих вещей: - устанавливающий python3-tk и tkinter-dev - каталог Tkinter, являющийся доступным в/usr/lib/python3.5.
Наблюдаемая ошибка была из следующего файла:
Файл "/usr/local/lib/python3.5/tkinter/init.py", строка 35, в импорте _tkinter #, Если это приводит Ваш Python к сбою, не может быть настроен для Tk
Однако, когда я просто запустил Python от/usr/bin как/usr/bin/python3.5 от терминала, он работал на меня!
Короче говоря, просто удостоверьтесь, что версии Python, выполняемой от терминала, установили tkinter и настроенный :)
У меня есть Ubuntu16.04, установленный в моей системе, которая идет со значением по умолчанию python2.7 и python3.5
Вы попробовали import Tkinter
(с капиталом T) в Вашей программе Python? Это сделало это для меня.