TKinter (filedialog.askdirectory) freezing Spyder console

时光怂恿深爱的人放手 提交于 2019-12-08 06:58:46

问题


I noticed in other questions that there are (or were) several problems with TKinter in Spyder. I have been using it in IDLE for a while but I am moving to Spyder, and came upon some problems.

I am running Python 3.6.4 with Spyder 3.2.8 from Anaconda 1.8.4, on Windows 7 Enterprise.

When I try to use some TKinter functions (like filedialog.askdirectory) Spyder´s console freeze. I´ve been reading different forums but still no one has the same problem or a solution to this problem. Here is a simple code that would work in IDLE, but not in 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")

As a result, I get:

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

And the console keeps running, waiting for the ASKDIRECTORY to pop a new window to select a file. In IDLE it works just fine. Does anyone know which could be the problem and some possible solution?

I read on other threads solutions like updating to Spyder 3.0 (I already have 3.2.8) or changing some "External Modules" for the "Console" in Preferences, but there is not such a tab on my Prefereneces window (don´t know how to do that otherwise).

Thank you.


回答1:


try running this command %gui tk at the console before running your code.

The alternative is it go to Tools > Preferences > IPython Console > Graphics > Graphics backend and select tkinter there.

This worked for me :) The answer was found here https://groups.google.com/forum/#!topic/spyderlib/rFJhJZgjZTE



来源:https://stackoverflow.com/questions/50158218/tkinter-filedialog-askdirectory-freezing-spyder-console

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!