ImportError: Żaden moduł o nazwie „Tkinter”


206

Z jakiegoś powodu nie mogę użyć modułu Tkinterlub tkinter. Po uruchomieniu następującego polecenia w powłoce pytona

import Tkinter

lub

import tkinter

Mam ten błąd

ModuleNotFoundError: Brak modułu o nazwie „Tkinter”

lub

ModuleNotFoundError: Brak modułu o nazwie „tkinter”

Jaki może być powód i jak możemy to rozwiązać?


7
Zainstaluj, czy Python nie jest w to wyposażony?
RasmusGP

Zależy, jakiej wersji używasz?
Zeb,

Problem polegał na tym, że zainstalowałem niewłaściwą wersję Pythona i nie zainstalowałem już wszystkich modułów, dzięki teraz :)
RasmusGP

12
Dlaczego to pytanie jest zamknięte? To pierwszy wątek, który przyszedł do mnie podczas wyszukiwania ModuleNotFoundError: No module named 'tkinter'i myślę, że treść tutaj jest istotna.
ScottMcC

13
Hej Googler na Ubuntu! sudo apt-get install python3-tk ; Wszystko kredytowej kreatorze harrypotter0 poniżej ale komentarz jest poniżej krotnie trochę;)
Two-Bit Alchemist

Odpowiedzi:


329

Prawdopodobnie musisz go zainstalować, korzystając z jednego z poniższych (lub czegoś podobnego):

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

Od jakiegoś czasu używam Tkintera. Dlaczego nie wypróbujesz tego i poinformujesz mnie, czy zadziałało?

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

Oto link referencyjny, a tutaj dokument

Lepiej sprawdzić wersje zgodnie z sugestią tutaj :

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

Lub pojawi się błąd ImportError: No module named tkinter

EDYCJA 1: Aby uogólnić tę odpowiedź, pożyczyłem następujące komentarze. W Fedorze użyj jednej z następujących komend

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

lub

sudo dnf install python3-tkinter

Możesz używać shebang w skrypcie python #! / Usr / bin / env python3
Shigiang Liu,

1
Osoby z Fedorą uruchamiają to polecenie, aby zainstalować: - sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat

To właśnie zmiana wielkości liter (z Tkinter na tkinter) mnie dopadła - każdy musi teraz zaktualizować cały swój przykładowy kod :)
Guy Starbuck

Dlaczego należy go zainstalować, jeśli jest to standardowy interfejs Pythona ?
Marko

Dodanie do tego, co skomentował @DevendraBhat. W Fedorze możesz użyć „sudo dnf install python3-tkinter” do instalacji.
Kelly Bang

67

Podczas używania Python 3 nazwa modułu została zmieniona na tkinter, zgodnie z dokumentacją :

Uwaga Nazwa Tkinter została zmieniona na tkinter w Python 3. Narzędzie 2to3 automatycznie dostosuje importowanie podczas konwersji źródeł do Python 3.


8

W systemie Windows 10 ważne jest, aby sprawdzić, czy w Pythonie zainstalowano opcjonalną funkcję „tcl / tk and IDLE”. W przeciwnym razie otrzymasz ModuleNotFoundError: Żaden moduł o nazwie „tkinter” . W moim przypadku nie było możliwe zainstalowanie tkintera po instalacji Pythona za pomocą czegoś takiego jak „pip install tkinter”


Masz rację, „plik zip do osadzenia” w Pythonie nie zawiera tk, powinniśmy pobrać „wykonywalny instalator” i nie zapomnij wybrać opcji „tcl / tk i IDLE”
tinyhare

5
Możesz zmienić instalację Pythona, uruchamiając ponownie instalator Pythona i wybierając „Modyfikuj”. W tym momencie możesz zaznaczyć pole wyboru „tcl / tk i IDLE” i uzyskać potrzebny moduł.
Sergio Morstabilini

5

W systemie Windows 10 używającym VSCode lub PyCharm z Pythonem 3.7.4 - upewnij się, że Tk jest zaznaczone podczas instalacji. Próbowałem import tkinter as xyzz górnymi / dolnymi t i k oraz wszystkimi wariantami bez powodzenia.

Co działa:

import tkinter
import _tkinter
tkinter._test()

Przykład w akcji:

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

Nie sądzę, aby import bezpośredni _tkintermiał jakikolwiek efekt. tkinterautomatycznie to zaimportuje.
Bryan Oakley

@BryanOakley Nie sądzę, że to ma jakikolwiek efekt . Mogę przysiąc, że to była poprawka i dotyczyło to co najmniej 5 innych osób. To musi być błąd.
Jeremy Thompson

3

Może być konieczne zainstalowanie konkretnej wersji. Znam przypadki, w których było to potrzebne, gdy korzystałem z wielu wersji Pythona, a jedna wersja w virtualenv korzystająca na przykład z Pythona 3.7 nie importowała tkintera. Musiałbym zainstalować tę wersję konkretnie.

Na przykład

sudo apt-get install python3.7-tk 

Nie mam pojęcia, dlaczego - ale tak się stało.


2

Upewnij się, że podczas uruchamiania kodu python jest on w kontekście python3 . Miałem ten sam problem i wystarczyło wpisać polecenie:

sudo python3 REPLACE.py

przeciw

sudo python REPLACE.py

ten drugi kod jest niepoprawny, ponieważ tkinter jest najwyraźniej niedostępny w python1 lub python2.


1

sprawdź zainstalowaną wersję Pythona za pomocą polecenia python --version

sprawdź, czy moduł Tk został poprawnie zainstalowany z następującego kodu

sudo apt-get install python3-tk 

Sprawdź, czy korzystasz z systemu operacyjnego typu open source

sprawdź moduł tkinter w następującej ścieżce / home / python / site-packages / tkinter zmień ścieżkę odpowiednio w swoim systemie


1

Wystarczy go zainstalować i zaimportować do swojego projektu w ten sposób:

import tego kodu do wiersza poleceń:

sudo apt-get install python3-tk 

po zaimportowaniu tkinter twój projekt:

from tkinter import *

0

Na CentOS7, aby uzyskać pracę z Python2, musiałem:

yum -y install tkinter

Zwracając uwagę na to tutaj, ponieważ myślałem, że będzie pakiet pip, ale zamiast tego trzeba faktycznie zainstalować RPM.



0

Sprawdź, czy są zadania, może być oznaczony jako usunięty

sudo apt autoremove

Następnie sprawdź i zainstaluj potrzebne


0

--------- DZIAŁAŁO NA PYTHON 2.7 ------------

Zainstaluj wszystkie poniższe pakiety

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 powinien być dostarczany z najnowszym Pythonem, nie sądzę, że pochodzi z Pythonem 2. Miałem ten sam problem, ale po uaktualnieniu do Pythona 3.8 Tkinter został zainstalowany


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.