ImportError: Tidak ada modul bernama 'Tkinter'

206

Untuk beberapa alasan, saya tidak bisa menggunakan modul Tkinteratau tkinter. Setelah menjalankan perintah berikut di shell python

import Tkinter

atau

import tkinter

Saya mendapat kesalahan ini

ModuleNotFoundError: Tidak ada modul bernama 'Tkinter'

atau

ModuleNotFoundError: Tidak ada modul bernama 'tkinter'

Apa yang bisa menjadi alasan dan bagaimana kita bisa menyelesaikannya?

RasmusGP
sumber
7
Instal bukankah python menyertainya?
RasmusGP
Tergantung versi apa yang Anda gunakan?
Zeb
Masalahnya adalah bahwa saya telah menginstal versi python yang salah dan tidak memiliki semua modul yang diinstal semua diperbaiki sekarang terima kasih :)
RasmusGP
12
Mengapa pertanyaan ini ditutup? Ini adalah utas pertama yang muncul untuk saya ketika saya mencari ModuleNotFoundError: No module named 'tkinter'dan saya pikir konten di sini relevan.
ScottMcC
13
Hai Googler di Ubuntu! sudo apt-get install python3-tk ; Semua pujian untuk penyihir harrypotter0 di bawah ini tetapi komentar itu sedikit di bawah flip;)
Two-Bit Alchemist

Jawaban:

329

Anda mungkin perlu menginstalnya menggunakan salah satu (atau yang serupa dengan) yang berikut ini:

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

Saya telah menggunakan Tkinter untuk sementara waktu sekarang. Mengapa Anda tidak mencoba ini dan beri tahu saya jika itu berhasil?

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

Inilah tautan referensi dan inilah dok

Lebih baik untuk memeriksa versi seperti yang disarankan di sini :

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

Atau Anda akan mendapatkan kesalahan ImportError: No module named tkinter

EDIT 1: Hanya untuk membuat jawaban ini lebih umum, saya meminjam yang berikut dari komentar. Di Fedora silakan gunakan salah satu dari perintah berikut

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

atau

sudo dnf install python3-tkinter
d-coder
sumber
Anda dapat menggunakan shebang dalam skrip python #! / Usr / bin / env python3
Shigiang Liu
1
Mereka yang menggunakan Fedora menjalankan perintah ini untuk menginstal: - sudo dnf instal python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat
Itu adalah perubahan dalam kapitalisasi (Tkinter ke tkinter) yang membuat saya - semua orang sekarang perlu memperbarui semua kode sampel mereka :)
Guy Starbuck
Mengapa perlu diinstal jika itu adalah antarmuka python standar ?
Marko
Menambahkan apa yang dikomentari @DevendraBhat. Di fedora Anda bisa menggunakan "sudo dnf install python3-tkinter" untuk instal.
Kelly Bang
67

Saat Anda menggunakan Python 3, modul telah diubah namanya menjadi tkinter, sebagaimana dinyatakan dalam dokumentasi :

Catatan Tkinter telah diubah namanya menjadi tkinter dengan Python 3. Alat 2to3 akan secara otomatis menyesuaikan impor saat mengonversi sumber Anda ke Python 3.

Burhan Khalid
sumber
8

Untuk windows 10, penting untuk memeriksa di Python menginstal fitur opsional "tcl / tk dan IDLE". Kalau tidak, Anda mendapatkan ModuleNotFoundError: Tidak ada modul bernama 'tkinter' . Dalam kasus saya, itu tidak mungkin untuk menginstal tkinter setelah Python menginstal dengan sesuatu seperti "pip install tkinter"

Andi Schroff
sumber
Anda benar, Python "embeddable zip file" tidak mengandung tk, kita harus mengunduh "installer yang dapat dieksekusi" dan jangan lupa untuk memilih opsi "tcl / tk dan IDLE"
tinyhare
5
Anda dapat mengubah instalasi python meluncurkan lagi installer python dan memilih "Ubah". Pada titik itu Anda dapat mencentang kotak "tcl / tk dan IDLE" dan mendapatkan modul yang Anda butuhkan.
Sergio Morstabilini
5

Untuk Windows 10 menggunakan VSCode atau PyCharm dengan Python 3.7.4 - pastikan Tk dicentang dalam pemasangan. Saya mencoba import tkinter as xyzdengan t / k atas dan bawah dan semua varian tanpa keberuntungan.

Apa yang berhasil adalah:

import tkinter
import _tkinter
tkinter._test()

Contoh dalam aksi:

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
sumber
Saya tidak berpikir bahwa mengimpor secara langsung _tkintermemiliki efek apa pun. tkintersecara otomatis akan mengimpor itu.
Bryan Oakley
@BryanOakley Saya rasa ini tidak berpengaruh . Saya bisa bersumpah pada apa pun ini adalah perbaikan dan itu untuk setidaknya 5 orang lainnya. Pasti itu bug.
Jeremy Thompson
3

Anda mungkin perlu menginstal untuk versi spesifik Anda, saya tahu ada kasus-kasus di mana ini diperlukan ketika saya menggunakan banyak versi python dan satu versi dalam virtualenv menggunakan misalnya python 3.7 tidak mengimpor tkinter saya harus menginstalnya untuk versi itu secara khusus.

Sebagai contoh

sudo apt-get install python3.7-tk 

Tidak tahu mengapa - tetapi ini telah terjadi.

deMangler
sumber
2

Pastikan bahwa ketika Anda menjalankan kode python Anda bahwa itu ada dalam konteks python3 . Saya memiliki masalah yang sama dan yang harus saya lakukan adalah memasukkan perintah sebagai:

sudo python3 REPLACE.py

melawan

sudo python REPLACE.py

kode terakhir salah karena tkinter tampaknya tidak tersedia di python1 atau python2.

Owen Preece
sumber
1

periksa versi python yang telah Anda instal dengan menggunakan perintah python --version

periksa modul Tk yang dipasang dengan benar dari kode berikut

sudo apt-get install python3-tk 

Periksa apakah Anda menggunakan OS open-source

periksa modul tkinter di jalur berikut / home / python / situs-paket / tkinter ubah jalur sesuai sistem Anda

Devaliya Pratik
sumber
1

Anda hanya perlu menginstalnya dan mengimpornya proyek Anda seperti itu:

impor kode ini ke baris perintah:

sudo apt-get install python3-tk 

setelah mengimpor tkinter proyek Anda:

from tkinter import *
Jafar Choupan
sumber
0

Pada CentOS7, agar ini berfungsi dengan Python2, saya harus melakukan:

yum -y install tkinter

Memperhatikan hal ini di sini karena saya pikir akan ada paket pip, tetapi sebagai gantinya, orang perlu menginstal rpm.

Frederick Ollinger
sumber
0

tkinter hadir dengan python ... uninstall python, pasang kembali, selesai

Giovanni G. PY
sumber
0

Periksa apt untuk tugas, itu mungkin ditandai untuk dihapus

sudo apt autoremove

Kemudian periksa dan instal yang diperlukan

Sergey Shamanayev
sumber
0

--------- BEKERJA DI PYTHON 2.7 ------------

Instal semua paket di bawah ini

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
sumber
0

tkinter harus datang dengan python terbaru, saya tidak berpikir itu datang dengan python 2. saya punya masalah yang sama tetapi setelah saya upgrade ke python 3.8 tkinter diinstal

Eloni
sumber
-1

gunakan di bawah ini.

from tkinter import *
root=Tk()
.....
root.mainloop()
sameer_nubia
sumber
1
Lihat " Menjelaskan sepenuhnya jawaban berbasis kode ". Meskipun ini mungkin benar secara teknis, itu tidak menjelaskan mengapa itu memecahkan masalah atau harus menjadi jawaban yang dipilih. Kita harus mendidik dan membantu menyelesaikan masalah.
the Tin Man