检查正在运行的Python解释器

时间:2015-11-07 01:13:17

标签: python

当python解释器被信号杀死时,它通常产生如下输出:

 File "~/anaconda/envs/py34/lib/python3.4/site-packages/skimage/feature/orb.py", line 313, in detect_and_extract
orientations)
  File "~/anaconda/envs/py34/lib/python3.4/site-packages/skimage/feature/orb.py", line 218, in _extract_octave
descriptors = _orb_loop(octave_image, keypoints, orientations)
  File "skimage/feature/orb_cy.pyx", line 56, in skimage.feature.orb_cy._orb_loop (skimage/feature/orb_cy.c:2276)
  File "~/anaconda/envs/py34/lib/python3.4/site-packages/numpy/core/numeric.py", line 394, in asarray
def asarray(a, dtype=None, order=None):
KeyboardInterrupt

有没有办法产生这样的输出作为暂停而不是永久停止运行过程的一部分?能够检查这样的运行python程序,而不是通过管理调试器来减慢它们,这将是很酷的。

对于阅读此问题的人来说,看看它是否与他们自己的技术问题有关:

This popular page解释了如何以编程方式获取回溯输出而不停顿。我的问题是python解释器是否内置了这样的代码(因此可以为某些kill -n提供n的信号,以便在不停止进程的情况下获得回溯输出),这样就可以了不必明确地将其添加到他们的程序中。似乎python解释器没有这种行为。

1 个答案:

答案 0 :(得分:0)

from time import sleep
import sys,traceback
try:
    print("hello")
    sleep(3)
except KeyboardInterrupt as error:
    print("This is my traceback")
    traceback.print_exc(sys.stdout)

您可以在打印追溯后放置暂停功能