ImportError: нет модуля с именем 'Tkinter'


207

По какой-то причине я не могу использовать модуль Tkinterили tkinter. После запуска следующей команды в оболочке python

import Tkinter

или

import tkinter

Я получил эту ошибку

ModuleNotFoundError: нет модуля с именем 'Tkinter'

или

ModuleNotFoundError: нет модуля с именем 'tkinter'

В чем может быть причина и как мы можем ее решить?


7
Установить это не Python идет с ним?
RasmusGP

Это зависит от того, какую версию вы используете?
Зеб

Проблема заключалась в том, что у меня была установлена ​​неправильная версия Python, и не все установленные модули были исправлены, спасибо :)
RasmusGP

12
Почему этот вопрос закрыт? Это первая тема, которая возникла у меня, когда я искал, ModuleNotFoundError: No module named 'tkinter'и я думаю, что содержание здесь уместно.
ScottMcC

13
Привет, Гуглер в Ubuntu! sudo apt-get install python3-tk ; Вся заслуга волшебника harrypotter0 ниже, но этот комментарий немного ниже сгиба;)
Двухразрядный алхимик

Ответы:


331

Вам, вероятно, нужно установить его, используя одно из (или что-то похожее) следующее:

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

Я использую Tkinter уже некоторое время. Почему бы вам не попробовать это и сообщить мне, если это сработало?

try:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter 
except ImportError:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here

Вот ссылка ссылка и вот документ

Лучше проверить версии, как предлагается здесь :

if sys.version_info[0] == 3:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here
else:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter

Или вы получите ошибку ImportError: No module named tkinter

РЕДАКТИРОВАТЬ 1: Просто чтобы сделать этот ответ более общим, я заимствовал следующее из комментариев. На Fedora, пожалуйста, используйте одну из следующих команд

sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64

или

sudo dnf install python3-tkinter

Вы можете использовать shebang в скрипте Python #! / Usr / bin / env python3
Shigiang Liu 20.09.16

1
Те, у кого есть Fedora, запускают эту команду для установки: - sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
Девендра Бхат

Это было изменение в заглавной буквы (Tkinter к tkinter), который получил меня - каждый теперь должен обновить весь их пример кода :)
Гай Старбак

Зачем его нужно устанавливать, если это стандартный интерфейс Python ?
Марко

Добавление к тому, что @DevendraBhat прокомментировал. В Fedora вы можете использовать «sudo dnf install python3-tkinter» для установки.
Келли Банг

67

Поскольку вы используете Python 3, модуль был переименован в tkinter, как указано в документации :

Примечание. Tkinter был переименован в tkinter в Python 3. Инструмент 2to3 автоматически адаптирует импорт при конвертации исходных кодов в Python 3.


8

Для windows 10 важно проверить в Python установить опциональную функцию "tcl / tk and IDLE". В противном случае вы получите ModuleNotFoundError: нет модуля с именем 'tkinter' . В моем случае было невозможно установить tkinter после установки Python с помощью чего-то вроде «pip install tkinter»


Вы правы, Python «встраиваемый zip-файл» не содержит tk, мы должны загрузить «исполняемый установщик» и не забудьте выбрать опцию «tcl / tk and IDLE»
tinyhare

5
Вы можете изменить установку Python, снова запустив программу установки Python и выбрав «Изменить». В этот момент вы можете установить флажок «tcl / tk and IDLE» и получить нужный вам модуль.
Серхио Морстабилини

5

Для Windows 10 с использованием VSCode или PyCharm с Python 3.7.4 - убедитесь, что Tk отмечен в установке. Я попытался import tkinter as xyzс верхним / нижним т и к и все варианты без удачи.

Что работает это:

import tkinter
import _tkinter
tkinter._test()

Пример в действии:

import tkinter
import _tkinter

HEIGHT = 700
WIDTH = 800

root = tkinter.Tk()

canvas = tkinter.Canvas(root, height = HEIGHT, width=WIDTH)
canvas.pack()

frame = tkinter.Frame(root, bg='red')
frame.pack()

root.mainloop()

Я не думаю, что прямой импорт _tkinterимеет какой-либо эффект. tkinterавтоматически импортирует это.
Брайан Оукли

@BryanOakley Я не думаю, что это имеет какое-либо влияние . Я могу поклясться на чем угодно, это было исправлением, и это было как минимум для 5 других. Это должно быть ошибка тогда.
Джереми Томпсон

3

Возможно, вам придется установить для вашей конкретной версии, мне известны случаи, когда это было необходимо, когда я использовал много версий python, и одна версия в virtualenv, например, с использованием python 3.7, не импортировала tkinter. Мне пришлось бы установить его для этой версии. в частности.

Например

sudo apt-get install python3.7-tk 

Не знаю почему - но это произошло.


2

Убедитесь, что когда вы запускаете свой код Python, он находится в контексте Python3 . У меня была та же проблема, и все, что мне нужно было сделать, это ввести команду как:

sudo python3 REPLACE.py

против

sudo python REPLACE.py

последний код неверен, потому что tkinter явно недоступен в python1 или python2.


1

проверьте версию Python, которую вы установили, используя команду python --version

проверьте правильность установки модуля Tk из следующего кода

sudo apt-get install python3-tk 

Проверьте, если вы используете ОС с открытым исходным кодом, то

проверьте модуль tkinter по следующему пути / home / python / site-packages / tkinter измените путь в соответствии с вашей системой


1

Вам просто нужно установить его и импортировать в него ваш проект так:

этот код импортируется в командную строку:

sudo apt-get install python3-tk 

после импорта ткинтер вашего проекта:

from tkinter import *

0

На CentOS7, чтобы это работало с Python2, мне пришлось сделать:

yum -y install tkinter

Отметив это здесь, потому что я думал, что будет пакет pip, но вместо этого нужно фактически установить rpm.


0

tkinter поставляется с Python ... удалить Python, переустановите его, все готово


0

Проверьте apt для задач, он может быть помечен для удаления

sudo apt autoremove

Затем проверьте и установите необходимые


0

--------- РАБОТАЛ НА ПИФОНЕ 2.7 ------------

Установите все нижеуказанные пакеты

sudo apt-get install git
sudo apt-get install python-tk
sudo apt-get install python-pip
sudo apt install picolisp
sudo -H pip2 install --upgrade pip
sudo pip install -I pillow
sudo apt-get install python-imaging-tk
sudo apt-get install python-tk

0

tkinter должен поставляться с последним Python, я не думаю, что он поставляется с Python 2. У меня была та же проблема, но как только я обновился до Python 3.8 tkinter был установлен


-1

используйте ниже.

from tkinter import *
root=Tk()
.....
root.mainloop()

1
См. « Объяснение полностью основанных на коде ответов ». Хотя это может быть технически правильно, это не объясняет, почему это решает проблему или должно быть выбранным ответом. Мы должны обучать в дополнение, чтобы помочь решить проблему.
Жестянщик

-1

Переустановите ваш python, затем используйте from tkinter import *для импорта в ваш код. надеюсь, это поможет

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.