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ć?

RasmusGP
źródło
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
d-koder
źródło
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.

Burhan Khalid
źródło
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”

Andi Schroff
źródło
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()
Jeremy Thompson
źródło
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.

deMangler
źródł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.

Owen Preece
źródło
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

Devaliya Pratik
źródło
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 *
Jafar Choupan
źródło
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.

Frederick Ollinger
źródło
0

tkinter pochodzi z python ... odinstaluj python, zainstaluj go ponownie, gotowe

Giovanni G. PY
źródło
0

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

sudo apt autoremove

Następnie sprawdź i zainstaluj potrzebne

Sergey Shamanayev
źródło
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
RAHUL
źródło
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

Eloni
źródło
-1

użyj poniżej.

from tkinter import *
root=Tk()
.....
root.mainloop()
same_nubia
źródło
1
Zobacz „ Wyjaśnianie odpowiedzi całkowicie opartych na kodzie ”. Chociaż może to być technicznie poprawne, nie wyjaśnia, dlaczego rozwiązuje problem, lub powinna być wybraną odpowiedzią. Oprócz tego powinniśmy edukować, aby pomóc rozwiązać problem.
Tin Man