1、Windows中sign報錯,Linux能很好的使用:
https://pypi.python.org/pypi/timeout-decorator
2、Windows可以使用,Linux報錯不能導入包,其實已經安裝,問題沒解決
https://pypi.python.org/pypi/func_timeout
from func_timeout import func_set_timeout, FunctionTimedOut @func_set_timeout(2.5) def mytest2(): print("Start") for i in range(1, 10): print("%d seconds have passed" % i) time.sleep(10) if __name__ == '__main__': try: mytest2() except FunctionTimedOut as e: print('mytest2:::', e)
調用函數時捕獲異常,可以在程序暫停時產生作用。
3、Windows、Linux都可以使用的
https://pypi.python.org/pypi/stopit
import stopit @stopit.threading_timeoutable() def infinite_loop(): # As its name says... try: print("Start") for i in range(1, 10): print("%d seconds have passed" % i) time.sleep(10) except Exception as e: traceback.print_exc()
if __name__ == '__main__': infinite_loop(timeout=1)
超時會拋出異常,我們可以設置 try except 捕獲。
程序運行中可以拋出異常。如果暫停或者卡住,就無效了。