仅当来自 shell 的 运行 脚本时出现 Tkinter NameError

Tkinter NameError only when running script from shell

我有一个 Tkinter Python 程序,可以在下面找到它的简化版本:

from tkinter import *
from tkinter.ttk import *

filedialog.askopenfilename()

当我从 IDLE 运行 这个脚本时,我没有收到任何错误。

但是,当从 PowerShell 运行 时,使用 python myscript.py 我得到

NameError: could not find name 'filedialog'

Windows 2012 年中期 MacBook Pro 上的 10 x64

IDLE 可能已经导入了它,但一般来说,因为 filedialog 是一个 tkinter 模块,所以它不会与裸机一起导入:

from tkinter import *

包括一个额外的:

from tkinter import filedialog

你应该可以开始了。