Tkinter 为什么fielddialog小部件在退出时重新启动Spyder内核?

Tkinter 为什么fielddialog小部件在退出时重新启动Spyder内核?,tkinter,Tkinter,我正在使用tkinter和python3.8和Spyder。我正在尝试使用文件对话框。 下面的代码运行,但当我单击(并重新单击和重新单击)退出按钮时,内核死亡并重新启动。我尝试了两种按钮语句,都没有解决问题。更改为askopenfilename没有帮助。它运行并做它应该做的事情,但在退出时重新启动内核。它也很难退出,按钮不起作用,我必须点击窗口角落的“X”几次才能退出 from tkinter import * from tkinter import filedialog import sys

我正在使用tkinter和python3.8和Spyder。我正在尝试使用文件对话框。 下面的代码运行,但当我单击(并重新单击和重新单击)退出按钮时,内核死亡并重新启动。我尝试了两种按钮语句,都没有解决问题。更改为askopenfilename没有帮助。它运行并做它应该做的事情,但在退出时重新启动内核。它也很难退出,按钮不起作用,我必须点击窗口角落的“X”几次才能退出

from tkinter import *
from tkinter import filedialog
import sys
root=Tk()
#B=Button(root, text="Exit", command=root.destroy).pack()
B=Button(root, text="Exit", command=sys.exit).pack()
F=filedialog.askopenfile(mode='r', initialdir = "./data",title = "Select file",filetypes = 
(("text","*.txt"),("all files","*.*")))
print (f"F={F}")

错误消息是:“[SpyderKernelApp]警告|没有此类通信:A20C091FD3A11EA86EF14B31F06B0C3”

我在尝试从Spyder读取/写入文件时也遇到类似问题。 在我看来,我没有足够的权限来进行某项手术

因此,我更改了外部驱动器的所有权,这为我解决了问题。我的做法是:

sudo chown yourusername:yourusername /media/yourusername/path_to_mounted_volume

我真心希望这也能解决您的问题。

当使用
spyder
version 5.0.0.dev和
command=root.destroy
for
B
时,它会起作用。