异常KeyError:KeyError(139697538152192,),使用带有atexit处理程序的线程模块

时间:2015-03-23 15:01:10

标签: python multithreading

我正在尝试为我的代码添加一个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

1 个答案:

答案 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