我在其他问题中注意到Spyder中的TKinter存在(或曾经存在)多个问题。我已经在IDLE中使用了一段时间,但是我要搬到Spyder,并且遇到了一些问题。
我正在Windows 7 Enterprise上使用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)或更改了“首选项”中“控制台”的某些“外部模块”,但是我的“偏好设置”窗口中没有这样的选项卡(不知道否则如何做)。
谢谢。
最佳答案
在运行代码之前,请尝试在控制台上运行此命令%gui tk。
替代方法是转到Tools > Preferences > IPython Console > Graphics > Graphics backend
并在此处选择tkinter
。
这对我有用:)
在这里找到答案https://groups.google.com/forum/#!topic/spyderlib/rFJhJZgjZTE
关于python - TKinter(filedialog.askdirectory)卡住Spyder控制台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50158218/