tkFileDialog 和 pyperclip 防止脚本退出

tkFileDialog and pyperclip prevent script from exiting

同时导入了 tkFileDialog 和 pyperclip 的脚本不会退出。 (Python2.7) 工作示例,我的脚本按预期退出:

import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
root.destroy()

以及:

import pyperclip
print ('whatever')

然而,以下将阻止我的脚本退出(raise SystemExit 为强调而添加):

import Tkinter, tkFileDialog
import pyperclip
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
root.destroy()
raise SystemExit

只需导入两个模块即可正常工作,必须打开 tkFileDialog 才能产生错误。 当作为脚本调用时,调用 os._exit() 或任何引发 SystemExit 的代码会软锁定解释器或 python 进程。
看来,问题发生在打开 tkFileDialog 时加载 pyperclip 时,因为以下片段按预期工作:

import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
root.destroy()
import pyperclip
raise SystemExit

尽管如此,在任何情况下,关键部分之后的每一行代码都会按预期执行,但提高 SystemExit 将创建一个软锁。
这不能用作解决方法,因为 python 不允许卸载模块。

我做错了什么?有什么解决方法吗?

不是真正的解决方案,但我能想到的最好的解决方案: 从 python 2.7 切换到 python 3.7(因此从 Tkinter 8.5 切换到 8.6)对我有用。

当然,这还有很多其他含义,我无法测试。

旁注 - 因为其他人无法复制这个问题: 我有机会在另一台 Windows 10 机上 运行 我的代码片段 - 它在相同的设置下完美运行。所以这个问题肯定和底层系统有关,而不是pyperclip或Tkinter本身。