ImportError: Немає модуля з назвою "Tkinter"


206

З якихось причин я не можу використовувати модуль Tkinterабо tkinterмодуль. Після запуску наступної команди в оболонці python

import Tkinter

або

import tkinter

Я отримав цю помилку

ModuleNotFoundError: Немає модуля під назвою "Tkinter"

або

ModuleNotFoundError: Немає модуля з назвою 'tkinter'

Що може бути причиною і як ми можемо її вирішити?


7
Встановити це не python з ним?
RasmusGP

Це залежить від того, яку версію ви використовуєте?
Зеб

Проблема полягала в тому, що у мене була встановлена ​​неправильна версія python, і зараз не встановлено всі модулі, зафіксовані всі спасибі :)
RasmusGP

12
Чому це питання закрите? Це перша тема, яка з’явилася для мене під час пошуку, ModuleNotFoundError: No module named 'tkinter'і я вважаю, що зміст тут є релевантним.
ScottMcC

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

Відповіді:


329

Вам, ймовірно, потрібно встановити його за допомогою одного з (або чогось подібного до) наступного:

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

EDIT 1: Просто для того, щоб зробити цю відповідь більш загальною, я запозичив наступне з коментарів. У Fedora використовуйте будь-яку з наведених нижче команд

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

або

sudo dnf install python3-tkinter

Ви можете використовувати shebang у python script #! / Usr / bin / env python3
Shigiang Лю

1
Ті, хто має Fedora, виконують цю команду для встановлення: - sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat

Саме мене змінила капіталізація (Tkinter to tkinter) - тепер усім потрібно оновити всі свої зразкові коди :)
Guy Starbuck

Чому його потрібно встановлювати, якщо це стандартний інтерфейс 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 та IDLE". В іншому випадку ви отримаєте ModuleNotFoundError: Немає модуля з назвою 'tkinter' . У моєму випадку встановити tkinter після установки Python не вдалося, наприклад, "pip install tkinter"


Ви маєте рацію, "вбудований zip-файл" Python не містить tk, ми повинні завантажити "виконуваний інсталятор" і не забудьте вибрати параметр "tcl / tk та IDLE"
tinyhare

5
Ви можете змінити інсталяцію python, запустивши знову встановлення python та вибравши "Змінити". У цей момент ви можете встановити прапорець "tcl / tk та IDLE" і отримати потрібний вам модуль.
Серхіо Морстабіліні

5

Для Windows 10, що використовує або VSCode, або PyCharm з Python 3.7.4 - переконайтесь, що Tk поставлений галочкою під час встановлення. Я спробував import tkinter as xyzз верхнім / нижнім t і k 's та всіма варіантами без удачі.

Що працює:

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()

Я не думаю, що імпорт direclty _tkinterне впливає. tkinterавтоматично імпортує це.
Брайан Оуклі

@BryanOakley Я не думаю, що це не має ніякого ефекту . Я можу присягнути, що це було виправленням, і це було принаймні для 5 інших. Тоді це має бути помилка.
Джеремі Томпсон

3

Можливо, вам знадобиться встановити для вашої конкретної версії, я знав випадки, коли це було потрібно, коли я використовував багато версій python та одну версію у virtualenv, використовуючи, наприклад, python 3.7 не імпортував tkinter, я повинен був би встановити його для цієї версії конкретно.

Наприклад

sudo apt-get install python3.7-tk 

Поняття не маю чому - але це сталося.


2

Переконайтеся, що під час запуску вашого пітонного коду він знаходиться в контексті 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-пакети / tkinter змінити шлях відповідно до вашої системи


1

Вам просто потрібно встановити його та імпортувати їм свій проект так:

імпорт цього коду до командного рядка:

sudo apt-get install python3-tk 

після імпорту tkinter вашого проекту:

from tkinter import *

0

У CentOS7, щоб працювати з Python2, мені довелося:

yum -y install tkinter

Зауваживши це тут, тому що я думав, що буде пакет pip, але замість цього потрібно фактично встановити rpm.



0

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

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
Див. " Пояснення відповідей на основі коду ". Хоча це може бути технічно коректним, воно не пояснює, чому воно вирішує проблему, чи має бути обрана відповідь. Ми повинні додатково навчатись, щоб допомогти вирішити проблему.
Олов'яний чоловік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.