我有一些旧的Python脚本,它们使用了不同版本的
tkinter
比当前系统配备的。回到过去,一个名为
_tkinter.createfilehandler()
存在并工作。对于当前版本,这将返回一个
RuntimeError
异常:
Traceback (most recent call last):
File "src/text.py", line 513, in <module>
tkinter.createfilehandler(pipe_r, READABLE, drain_pipe)
RuntimeError: _tkinter.createfilehandler not supported for threaded Tcl
我试图运行的脚本是这样的(当然是缩短版):
#!/usr/bin/env python
import os
from Tkinter import *
(pipe_r, pipe_w) = os.pipe()
# ...
def drain_pipe(a, b):
# handle data from pipe_r
# ...
tkinter.createfilehandler(pipe_r, READABLE, drain_pipe)
tk.mainloop()
有没有一个简单的方法可以让它再次运行?我确信有一种方法可以转换脚本(或者根据不同的范例重新编写脚本),但我很高兴有一个不需要进行太多更改的黑客(也许有一个开关可以以某种方式再次启用),因为我有几个这样的脚本,而且不需要进行大量修补。