如何让 TkInter 文件选择对话框与 IPython / Spyder 一起工作?

How to get a TkInter file selection dialogbox to work with IPython / Spyder?

我正在尝试为我的一个脚本创建一个简单的文件选择对话框,并且我正在尝试使用此线程中的代码示例:Quick and easy file dialog in Python?

import Tkinter, tkFileDialog

root = Tkinter.Tk()
root.withdraw()

file_path = tkFileDialog.askopenfilename()

我还尝试使用 easygui 模块,该模块使用 Tkinter 来做同样的事情。在这两种情况下,上面的代码都会挂起 IPython 控制台。我认为这与事件循环有关,但我在 Python.

中没有使用 GUI 的实际经验

有人可以为我指明正确的方向,让我了解如何获得用于文件选择的对话框以使用 IPython/Spyder。作为记录,我在 Python 2.7.6 和 IPython 2.4.1

在 运行 上面的代码之前,您需要设置正确的事件循环(在本例中 Tk),正如您猜对的那样。

为此,您需要 运行 此命令:

In [1]: %gui tk

然后 运行 你的代码。

注意:要访问Spyder中有关%gui魔法的文档,您需要将光标放在%gui前面并按Ctrl+I,像这样

In [1]: %gui<Ctrl+I>