我有一些旧的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()
有没有简单的方法可以让它再次运行?我敢肯定有一种方法可以转换脚本(或者可以根据不同的范式重新编写脚本),但是我很乐意不必进行太多更改(也许有一个开关可以再次启用它)因为我有几个这样的脚本,并且不希望打很多补丁。
最佳答案
如果tk
是Tk()
对象,请改用tk.createfilehandler
。
关于python - 使_tkinter.createfilehandler再次工作(或提供解决方法),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21868406/