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

如何让TkInter文件选择对话框与IPython/Spyder一起工作?,python,tkinter,ipython,spyder,Python,Tkinter,Ipython,Spyder,我正在尝试为我的一个脚本创建一个简单的文件选择对话框,并尝试使用此线程中的代码示例: 我还尝试使用使用Tkinter的模块来做同样的事情。在这两种情况下,上面的代码都会挂起IPython控制台。我推测这与事件循环有关,但我没有在Python中使用GUI的实际经验 有人能告诉我如何使用IPython/Spyder获得文件选择对话框的正确方向吗。作为记录,我使用的是Python 2.7.6和IPython 2.4.1,在运行上述代码之前,您需要设置正确的事件循环(在本例中为Tk),正如您正确猜测的那

我正在尝试为我的一个脚本创建一个简单的文件选择对话框,并尝试使用此线程中的代码示例:

我还尝试使用使用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>
[1]中的
:%gui

我不在工作电脑前尝试,但在家里的桌面上,我只是在Spyder(Spyder 2.3.4)中的IPython控制台中尝试了
%gui tk
,我收到了以下错误消息:“错误:无法激活多个gui事件循环”。我在IPython QtConsole中尝试了此操作,但没有错误消息。为了让
%gui
命令适用于tkinter,我需要在Spyder设置中更改一些特殊的设置吗?这是因为您在Spyder首选项中选择了另一个后端来创建绘图(可能是
qt
automatic
)。要使
%gui-tk
在这种情况下工作,您需要首先运行
%gui-inline
。这是在看到该错误的同一会话中更改后端的一个小技巧。我还忘了提到,如果要将
tk
设置为所有控制台的默认后端,则需要转到
Tools>Preferences>IPython Console>Graphics>Graphics backend
并在那里选择
tk
In [1]: %gui<Ctrl+I>