2013-07-24 48 views
17

Khi tôi trả lời Tkinter câu hỏi tôi thường cố gắng và chạy mã bản thân mình, nhưng đôi khi tôi nhận được lỗi này:Sự khác nhau giữa Tkinter và Tkinter

Traceback (most recent call last): 
    File "C:\Python27\pygame2.py", line 1, in <module> 
    from tkinter import * 
ImportError: No module named tkinter 

Khi tôi nhìn vào câu hỏi tôi thấy họ nhập tkinter với một thấp -case t:

from tkinter import * 

tôi luôn nhập Tkinter với T vốn:

from Tkinter import * 

Luôn luôn làm việc cho tôi. Sự khác nhau giữa việc sử dụng tkinterTkinter là gì?

Trả lời

31

Thật đơn giản.

Đối python2 nó là:

from Tkinter import * 

Đối python3 nó là:

from tkinter import * 

Dưới đây là cách làm thế nào bạn có thể quên đi sự nhầm lẫn này một lần và cho tất cả:

try: 
    from Tkinter import * 
except ImportError: 
    from tkinter import * 
+0

đó là đơn giản tôi đã nhờ ahah – Serial

+5

Trong cả hai trường hợp, tôi khuyên bạn nên tránh nhập khẩu toàn cầu. IMO một cách tốt hơn là 'nhập Tkinter dưới dạng tk' hoặc' nhập tkinter dưới dạng tk'. –

11

Tkinter là tên của Python 2.x cho thư viện Tkinter. Tuy nhiên, trong Python 3.x, tên đã được đổi thành tkinter. Để tránh chạy vào vấn đề này, tôi thường làm điều này:

from sys import version_info 
if version_info.major == 2: 
    # We are using Python 2.x 
    import Tkinter as tk 
elif version_info.major == 3: 
    # We are using Python 3.x 
    import tkinter as tk 
+9

Trong cả hai trường hợp, tôi khuyên bạn nên tránh nhập khẩu toàn cầu. IMO một cách tốt hơn là 'nhập Tkinter dưới dạng tk' hoặc' nhập tkinter dưới dạng tk'. –

2

Nó chỉ đơn giản rằng trong python 3 đó là "Tkinter" và trong python 2 đó là "Tkinter" trường hợp tại điểm:

#python 2 
from Tinter import * 

#python 3 
from tkinter import * 
0

Python 2 đã luôn luôn sử dụng from Tkinter import * nhưng python 3 sử dụng from tkinter import * Tôi tìm thấy điều này ngu ngốc và tiếc là nó gây nhầm lẫn rất nhiều người.

2

Cách viết hoa của tiện ích Tkinter và tkinter, phương pháp và tên tùy chọn khác nhau đáng kể trên bảng. Trong một số trường hợp, tên của chúng khác nhau. Một số tính năng của Tkinter không tồn tại trong tkinter và ngược lại. Nhưng, như đã nêu, sự khác biệt chính là Tkinter là một mô-đun trong Python 2x trong khi tkinter là một mô-đun trong Python 3x.

0

Sử dụng "nhập khẩu Tkinter" bằng Python 2 và sử dụng "Tkinter nhập khẩu" bằng Python 3.

-1
try: 
    import tkinter 
    print"importing tkinter from python 3.x" 
except: 
    import Tkinter 
    print"importing Tkinter from python 2.x" 

finally: 
    print"Difference !" 
+3

Bạn nên thêm mô tả về cách mã của bạn giúp giải quyết vấn đề. – Tony

+1

mà không có mô tả nó sẽ được đánh dấu là chất lượng thấp và có thể bị xóa – Syfer

+0

Chưa kể rằng kết quả của việc nhập khẩu này về cơ bản là vô dụng mà không kiểm tra thêm. –

Các vấn đề liên quan