我在其他问题中注意到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窗口中没有这样的选项卡(不要不知道如何做到这一点。
谢谢。
答案 0 :(得分:1)
在运行代码之前,请尝试在控制台上运行此命令%gui tk。
另一种选择是转到Tools > Preferences > IPython Console > Graphics > Graphics backend
,然后在此处选择tkinter
。
这对我有用:) 答案在这里https://groups.google.com/forum/#!topic/spyderlib/rFJhJZgjZTE