我正在尝试为我的代码添加一个atexit处理程序。但我发现如果我导入了线程模块,它会给我一个KeyError异常。这是python线程模块中的错误吗?
#!/usr/bin/python2.7
import threading
# Register a signal handler to exit gracefully
def exit_gracefully():
print 'Exiting ...'
import sys
sys.exit(1)
import atexit
atexit.register(exit_gracefully)
在运行上面的脚本时,我得到了
Exiting ...
Exception KeyError: KeyError(139697538152192,) in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored
答案 0 :(得分:1)
在我的情况下,我只在加载线程模块时才会遇到此问题。 我设法通过不在退出处理程序中调用sys.exit来解决它。
( SELECT rr.bid
, COUNT(DISTINCT rr.sid) AS cnt
FROM Reserves rr
JOIN Sailors rs
ON rs.sid = rr.sid
GROUP BY rr.bid
) r