【问题标题】:How to print the current filename, function and line number in Cython script如何在 Cython 脚本中打印当前文件名、函数和行号
【发布时间】:2019-04-05 14:07:28
【问题描述】:

filename and line number of python script

我需要在 Cython 脚本中打印当前文件名、函数和行号。建议的解决方案仅适用于 .py 脚本,不适用于 Cython 脚本。

谢谢

【问题讨论】:

    标签: cython


    【解决方案1】:

    这是一个非常不令人满意的工作,但我怀疑它可能是(接近)你能做的最好的。

    Cython 会在引发异常时生成调试信息,因此您需要引发和捕获异常才能访问此信息

    import sys
    import traceback
    
    def f():
        # code ...
        try:
            raise RuntimeError() # get information about this line
        except RuntimeError:
            print(traceback.extract_tb(sys.exc_info()[2],limit=1))
        # ... more code
    

    请注意,您不能尝试通过将所有内容放入“get_debug_info”函数然后进一步查找堆栈跟踪来保存重复 - Cython 仅生成函数的堆栈帧作为异常会向上传播堆栈,因此如果您捕获到异常,那么您将看不到它上方的任何 Cython 帧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2011-09-16
      • 2013-01-12
      • 2014-08-21
      • 2012-09-13
      相关资源
      最近更新 更多