ImportError: Không có mô-đun có tên 'Tkinter'


206

Vì một số lý do, tôi không thể sử dụng Tkinterhoặc tkintermô-đun. Sau khi chạy lệnh sau trong shell python

import Tkinter

hoặc là

import tkinter

Tôi đã gặp lỗi này

ModuleNotFoundError: Không có mô-đun nào có tên 'Tkinter'

hoặc là

ModuleNotFoundError: Không có mô-đun nào có tên 'tkinter'

Điều gì có thể là lý do cho và làm thế nào chúng ta có thể giải quyết nó?


7
Cài đặt nó không python đi kèm với nó?
RasmusGP

Nó phụ thuộc vào phiên bản bạn đang sử dụng?
Zeb

Vấn đề là tôi đã cài đặt phiên bản python sai và không cài đặt tất cả các mô-đun đã được sửa chữa ngay bây giờ nhờ :)
RasmusGP

12
Tại sao câu hỏi này được đóng lại? Đây là chủ đề đầu tiên xuất hiện khi tôi tìm kiếm ModuleNotFoundError: No module named 'tkinter'và tôi nghĩ nội dung ở đây có liên quan.
ScottMcC

13
Xin chào nhân viên Google trên Ubuntu! sudo apt-get cài đặt python3-tk ; Tất cả tín dụng cho trình hướng dẫn harrypotter0 bên dưới nhưng nhận xét đó ở dưới màn hình một chút;)
Nhà giả kim hai bit

Câu trả lời:


329

Bạn có thể cần phải cài đặt nó bằng một trong (hoặc một cái gì đó tương tự) như sau:

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

Tôi đã sử dụng Tkinter được một thời gian rồi. Tại sao bạn không thử điều này và cho tôi biết nếu nó hoạt động?

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

Đây là liên kết tham khảo và đây là tài liệu

Tốt hơn để kiểm tra các phiên bản như được đề xuất ở đây :

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

Hoặc bạn sẽ gặp lỗi ImportError: No module named tkinter

EDIT 1: Chỉ để làm cho câu trả lời này chung chung hơn, tôi đã mượn những điều sau đây từ các bình luận. Trên Fedora, vui lòng sử dụng một trong các lệnh sau

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

hoặc là

sudo dnf install python3-tkinter

Bạn có thể sử dụng shebang trong tập lệnh python #! / Usr / bin / env python3
Shigiang Liu

1
Những người có Fedora chạy lệnh này để cài đặt: - sudo dnf cài đặt python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat

Chính sự thay đổi về cách viết hoa (Tkinter thành tkinter) đã giúp tôi - mọi người bây giờ cần cập nhật tất cả mã mẫu của họ :)
Guy Starbuck

Tại sao nó cần phải được cài đặt nếu nó là một giao diện python tiêu chuẩn ?
Marko

Thêm vào những gì @DevendraBhat nhận xét. Trong fedora, bạn có thể sử dụng "sudo dnf install python3-tkinter" để cài đặt.
Kelly Bang

67

Khi bạn đang sử dụng Python 3, mô-đun đã được đổi tên thành tkinter, như đã nêu trong tài liệu :

Lưu ý Tkinter đã được đổi tên thành tkinter trong Python 3. Công cụ 2to3 sẽ tự động điều chỉnh nhập khẩu khi chuyển đổi nguồn của bạn sang Python 3.


8

Đối với windows 10, điều quan trọng là kiểm tra Python cài đặt tính năng tùy chọn "tcl / tk và IDLE". Nếu không, bạn nhận được ModuleNotFoundError: Không có mô-đun nào có tên 'tkinter' . Trong trường hợp của tôi, không thể cài đặt tkinter sau khi cài đặt Python với cái gì đó như "pip install tkinter"


Bạn đã đúng, "tệp zip nhúng" của Python không chứa tk, chúng ta nên tải xuống "trình cài đặt thực thi" và đừng quên chọn tùy chọn "tcl / tk và IDLE"
tinyhare

5
Bạn có thể sửa đổi cài đặt python khởi chạy lại trình cài đặt python và chọn "Sửa đổi". Tại thời điểm đó, bạn có thể kiểm tra hộp kiểm "tcl / tk và IDLE" và nhận mô-đun bạn cần.
Sergio Morstabilini

5

Đối với Windows 10 sử dụng VSCode hoặc PyCharm với Python 3.7.4 - hãy đảm bảo Tk được đánh dấu trong phần cài đặt. Tôi cố gắng import tkinter as xyzvới thượng / hạ tk 's và tất cả các biến thể mà không may mắn.

Những gì hoạt động là:

import tkinter
import _tkinter
tkinter._test()

Một ví dụ trong hành động:

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

Tôi không nghĩ nhập khẩu direclty _tkintercó ảnh hưởng gì. tkintertự động sẽ nhập cái đó.
Bryan Oakley

@BryanOakley Tôi không nghĩ điều này có ảnh hưởng gì . Tôi có thể thề với bất cứ điều gì đây là bản sửa lỗi và nó dành cho ít nhất 5 người khác. Đó phải là một lỗi sau đó.
Jeremy Thompson

3

Bạn có thể cần phải cài đặt cho phiên bản cụ thể của mình, tôi đã biết các trường hợp cần thiết khi tôi đang sử dụng nhiều phiên bản python và một phiên bản trong virtualenv, ví dụ python 3.7 không nhập tkinter đặc biệt.

Ví dụ

sudo apt-get install python3.7-tk 

Không biết tại sao - nhưng điều này đã xảy ra.


2

Hãy chắc chắn rằng khi bạn đang chạy mã python của bạn rằng nó nằm trong bối cảnh python3 . Tôi có cùng một vấn đề và tất cả những gì tôi phải làm là nhập lệnh như sau:

sudo python3 REPLACE.py

đấu với

sudo python REPLACE.py

mã sau không chính xác vì tkinter rõ ràng là không có sẵn trong python1 hoặc python2.


1

kiểm tra phiên bản python bạn đã cài đặt bằng cách sử dụng lệnh python --version

kiểm tra mô-đun Tk được cài đặt chính xác từ mã sau

sudo apt-get install python3-tk 

Kiểm tra xem bạn có đang sử dụng HĐH nguồn mở không

kiểm tra mô-đun tkinter trong đường dẫn sau / home / python / site-gói / tkinter thay đổi đường dẫn cho phù hợp với hệ thống của bạn


1

Bạn chỉ cần cài đặt nó và nhập chúng vào dự án của bạn như thế:

mã này nhập vào dòng lệnh:

sudo apt-get install python3-tk 

Sau khi nhập tkinter dự án của bạn:

from tkinter import *

0

Trên CentOS7, để làm việc này với Python2, tôi đã phải làm:

yum -y install tkinter

Lưu ý điều này ở đây bởi vì tôi nghĩ rằng sẽ có một gói pip, nhưng thay vào đó, người ta cần phải thực sự cài đặt một vòng / phút.


0

tkinter đi kèm với python ... gỡ cài đặt python, cài đặt lại nó, bạn đã hoàn tất


0

Kiểm tra apt cho các nhiệm vụ, nó có thể được đánh dấu để loại bỏ

sudo apt autoremove

Sau đó kiểm tra và cài đặt cần thiết


0

--------- LÀM VIỆC TRÊN PYTHON 2.7 ------------

Cài đặt tất cả các gói dưới đây

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 nên đi kèm với python mới nhất, tôi không nghĩ rằng nó đi kèm với python 2. tôi đã gặp vấn đề tương tự nhưng một khi tôi đã nâng cấp lên python 3.8 tkinter đã được cài đặt


-1

sử dụng dưới đây.

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

1
Xem " Giải thích câu trả lời hoàn toàn dựa trên mã ". Mặc dù điều này có thể đúng về mặt kỹ thuật nhưng nó không giải thích được tại sao nó giải quyết được vấn đề hoặc nên là câu trả lời được chọn. Chúng ta nên giáo dục ngoài việc giúp giải quyết vấn đề.
Tin Man
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.