TKinter(filedialog.askdirectory)冻结Spyder控制台

时间:2018-05-03 15:01:56

标签: python tkinter spyder

我在其他问题中注意到Spyder中的TKinter存在(或者有)几个问题。我已经在IDLE中使用了一段时间,但我正在转向Spyder,并遇到了一些问题。

我在Windows 7企业版上使用Anaconda 1.8.4的Spyder 3.2.8运行Python 3.6.4。

当我尝试使用某些TKinter函数(如filedialog.askdirectory)Spyder的控制台冻结时。 我一直在阅读不同的论坛,但仍然没有人有同样的问题或解决这个问题。 这是一个简单的代码,可以在IDLE中使用,但不能在SPYDER中使用:

import os
from tkinter import Tk, filedialog

Tk().withdraw()
print("Done WITHDRAW")

currentdir= os.getcwd()
print("Done GETCWD")

filename= filedialog.askdirectory(title="Select folder", initialdir=currentdir)
print("Done ASKDIRECTORY")

结果,我得到了:

runfile('M:/Users/KPK2/.../hello.py', wdir='M:/Users/KPK2/...')
Done WITHDRAW
Done GETCWD

控制台一直在运行,等待ASKDIRECTORY弹出一个新窗口来选择一个文件。在IDLE它工作得很好。 有谁知道哪个可能是问题和一些可能的解决方案?

我在其他线程上阅读了更新到Spyder 3.0(我已经有3.2.8)或在首选项中为“控制台”更改了一些“外部模块”的解决方案,但在我的Prefereneces窗口中没有这样的选项卡(不要不知道如何做到这一点。

谢谢。

1 个答案:

答案 0 :(得分:1)

在运行代码之前,请尝试在控制台上运行此命令%gui tk。

另一种选择是转到Tools > Preferences > IPython Console > Graphics > Graphics backend,然后在此处选择tkinter

这对我有用:) 答案在这里https://groups.google.com/forum/#!topic/spyderlib/rFJhJZgjZTE