TKinter (filedialog.askdirectory) замораживает консоль Spyder - PullRequest
0 голосов
/ 03 мая 2018

Я заметил в других вопросах, что есть (или были) несколько проблем с TKinter в Spyder. Некоторое время я использовал его в IDLE, но переехал в Spyder и столкнулся с некоторыми проблемами.

Я использую Python 3.6.4 с Spyder 3.2.8 из Anaconda 1.8.4, в Windows 7 Enterprise.

Когда я пытаюсь использовать некоторые функции 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 откроет новое окно для выбора файла. В бездействии это работает просто отлично. Кто-нибудь знает, в чем может быть проблема и какое-то возможное решение?

Я читал о решениях других потоков, таких как обновление до Spyder 3.0 (у меня уже есть 3.2.8) или изменение некоторых «внешних модулей» для «Консоли» в настройках, но в моем окне «Prefereneces» такой вкладки нет (не Иначе я не знаю, как это сделать).

Спасибо.

1 Ответ

0 голосов
/ 26 октября 2018

попробуйте запустить эту команду% gui tk на консоли перед запуском вашего кода.

Альтернатива - перейти к Tools > Preferences > IPython Console > Graphics > Graphics backend и выбрать tkinter там.

Это сработало для меня :) Ответ был найден здесь https://groups.google.com/forum/#!topic/spyderlib/rFJhJZgjZTE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...