以下代码随Trace/BPT trap
而死:
from tvdb_api import Tvdb
from threading import Thread
class GrabStuff(Thread):
def run(self):
t = Tvdb()
def main():
threads = [GrabStuff() for x in range(1)]
[x.start() for x in threads]
[x.join() for x in threads]
if __name__ == '__main__':
main()
错误发生在Tvdb()
,但我不明白为什么。
我使用python -m pdb thescript.py
运行代码并逐步执行代码,然后在以下行之后死掉:
> .../threading.py(468)start()
-> _active_limbo_lock.acquire()
(Pdb)
> .../threading.py(469)start()
-> _limbo[self] = self
(Pdb)
> .../threading.py(470)start()
-> _active_limbo_lock.release()
(Pdb)
> .../threading.py(471)start()
-> _start_new_thread(self.__bootstrap, ())
(Pdb)
> .../threading.py(472)start()
-> self.__started.wait()
(Pdb) Trace/BPT trap
(我用...
)
2.6.1
和2.5.4
出现同样的问题。该机器在OS X 10.6.1 Snow Leopard上运行。可以在github.com/dbr/tvdb_api
tvdb_api
代码
答案 0 :(得分:3)
在OS X 10.6上的线程中首次导入模块时可能会发生错误。例如,请参阅this issue。作为一种解决方法,尝试查看Tvdb并将其完整的导入链添加到主模块。