我用的 python 3.5
1、解決方法如下:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
通過上面的方法就可以正確導入tkinter模塊了,最新版本Tkinter
要全部小寫成tkinter
才行。
ImportError: No module named 'Tkinter'
這很有可能是因爲找到的代碼是python2.x的,然而卻把它放在python3.x的環境下跑。其實上面的Tkinter庫在python3裏已經改名了,變成了tkinter,只是首字母變小寫了,但是import語句是對大小寫敏感的!
其實有個很好的辦法來完成由2.x的代碼到3.x的代碼的轉換,這裏再以tkinter庫爲例,方法如下:
1.打開tkinter庫的文件夾,比如我的就是C:\Python34\Lib\tkinter,查看其目錄結構,如下圖
2、- import tkMessageBox
-
- 改成下面:
- import tkinter.messagebox #對應着tkinter文件夾底下的messagebox.py
- messagebox.showinfo("title","hello world") #NameError: name 'messagebox' is not defined
- tkinter.messagebox.showinfo("title","hello world") #正確
或者改成
- from tkinter import messagebox #對應着tkinter文件夾底下的messagebox.py
- messagebox.showinfo("title","hello world")
最後補充兩點要注意的地方:
1.packages可以認爲是文件夾,而modules則可以看作是文件夾下的.py文件,而各色各樣的import語句歸結起來就是
from packages1.packages2 import modules1
或者
import packages1.packages2.modules1
2.
- from tkinter import *
- root = Tk()
- from tkinter import messagebox #對應着tkinter文件夾底下的messagebox.py