簡體   English   中英

tkinter 和 Tkinter 的區別

[英]Difference between tkinter and Tkinter

當我回答 Tkinter 問題時,我通常會嘗試自己運行代碼,但有時我會收到此錯誤:

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

當我查看問題時,我看到他們使用小寫的 t 導入tkinter

from tkinter import *

我總是用大寫的 T 導入Tkinter

from Tkinter import *

這總是對我有用。 使用tkinterTkinter什么區別?

這很簡單。

對於python2,它是:

from Tkinter import *

對於python3,它是:

from tkinter import *

這是您如何一勞永逸地忘記這種混亂的方法:

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

Tkinter是 Python 2.x 中 Tkinter 庫的名稱。 然而,在 Python 3.x 中,名稱已更改為tkinter 為了避免遇到這個問題,我通常這樣做:

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

Tkinter 和 tkinter 小部件、方法和選項名稱的大寫完全不同。 在某些情況下,名稱本身是不同的。 Tkinter 的某些功能在 tkinter 中不存在,反之亦然。 但是,如前所述,主要區別在於 Tkinter 是 Python 2x 中的模塊,而 tkinter 是 Python 3x 中的模塊。

很簡單,在 Python 3 中它是“tkinter”,而在 Python 2 中它是“Tkinter”案例:

#python 2
from Tkinter import *

#python 3
from tkinter import *

要使程序同時在 Python 2 和 Python 3 上運行,您可以使用:

try:
    import tkinter as tk
except:
    import Tkinter as tk

然后使用 Tkinter 模塊作為 tk

根據官方文檔,“Tkinter 已在 Python 3 中重命名為 tkinter”。 在 Python2 中,您使用import Tkinter或更頻繁地使用from Tkinter import *其中“*”表示“全部”。 在 Python3 中,您使用import tkinter tkinter 或from tkinter import * tkinter from tkinter import *

Python 2 一直使用from Tkinter import *但 python 3 使用from tkinter import *我覺得這很愚蠢,不幸的是它讓很多人感到困惑。

蟒蛇2:

from Tkinter import *

蟒蛇3:

from tkinter import *

在python 2中,它是:

from Tkinter import *

在python 3中,它是:

from tkinter import *

如果您想讓您的代碼在兩個版本中都能正常工作,請執行以下操作:

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

finally:
   print"Difference !"

適用於 Python 2. & Python 3. 的Tkinter 和 tkinter 之間的其他區別 **

我有一個腳本,它有不同的 Python 2.* Tkinter 導入,所以瀏覽了一個,但我看到答案都是分散的。 這里有一個使用兩個 Python 版本的安全腳本的小總結。

try:
    import Tkinter as tk
    import tkMessageBox as tkm
    import ScrolledText as tkst
    from tkFileDialog import askopenfilename
except ImportError:
    import tkinter as tk
    import tkinter.messagebox as tkm
    import tkinter.scrolledtext as tkst
    from tkinter.filedialog import askopenfilename

ModuleNotFoundError 錯誤列表(運行 Python 3 時)

ModuleNotFoundError: No module named 'Tkinter'
ModuleNotFoundError: No module named 'tkMessageBox'
ModuleNotFoundError: No module named 'ScrolledText'
ModuleNotFoundError: No module named 'tkFileDialog'

唯一的區別是模塊名稱取決於 Python 的主要版本。 雖然在 Python 3 中它是tkinter ,但它曾經是 Python 2 中的Tkinter 。請記住,與 Tkinter 相關的其他模塊也已重命名。 這是完整列表

文檔

在 Python 3 中,Tkinter 已重命名為 tkinter。

為了向后兼容,最好像這樣導入 tkinter 和您正在使用的相關模塊:

try:
    import tkinter as tk
    from tkinter import messagebox
    from tkinter import filedialog
except ImportError:
    import Tkinter as tk
    import tkMessageBox as messagebox
    import tkFileDialog as filedialog

真的沒有什么區別。 這只是您的計算機類型和 Python 版本之間的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM