我有使用tkinter的代码,我可以从IDLE运行,但是当从命令行运行时抛出异常AttributeError: 'module' object has no attribute 'font'
。其他tkinter程序工作正常,但任何使用tkinter包的font.py都会给我这个错误。
我检查了我的python文件,c:/Python34/Lib/tkinter/font.py就在那里。我不确定为什么,从命令行,它认为font是一个属性而不是tkinter包的模块。
示例代码:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
test_font = tk.font.Font(size=12,weight='bold')
root.mainloop()
答案 0 :(得分:4)
同样在这里:
os
答案很简单:Python不会自动导入所有模块层次结构,只是因为您导入了顶级层次结构。那些做(os.path
,使tkinter
可用)的人必须明确地为此编写代码。
但是,由于IDLE本身使用tkinter.font
,因此它已经导入了import tkinter.font
,因此您认为没有导入就可以逃脱。你不能。只需添加method
即可。