类方法的 statcktrace 未在 python 中打印

statcktrace of classmethod not getting printed in python

class 中有一个 @class 方法,在导入 class 时会自动调用该方法。我想知道传递给该方法的参数。所以我特意添加了一段代码来使该函数崩溃并打印堆栈跟踪。但是,它不会打印谁在调用此加载方法。

其实我想知道是谁在发送参数值(具体是cuda_device

 @classmethod
    def load(cls,
             config: Params,
             serialization_dir: str,
             weights_file: str = None,
             cuda_device: int = -1) -> 'Model':

        who called me?   #line added by me to crash and print stacktrace
  File "/data/TFS/AI%20-%20Projects/MULTI_PROC/allen_ws/urls.py", line 19, in <module>
    from allen_ws import ANLP_API_SB1
  File "/data/TFS/AI%20-%20Projects/MULTI_PROC/allen_ws/ANLP_API_SB1.py", line 5, in <module>
    from allennlp.predictors.predictor import Predictor
  File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/predictors/__init__.py", line 9, in <module>
    from allennlp.predictors.predictor import Predictor
  File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/predictors/predictor.py", line 8, in <module>
    from allennlp.models import Model
  File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/models/__init__.py", line 6, in <module>
    from allennlp.models.model import Model
  File "/anaconda3/envs/allennlpenv/lib/python3.6/site-packages/allennlp/models/model.py", line 331
    who called me?

在上面的堆栈跟踪中 models/__ init __ .py 正在调用 model.py 行 331(在第 331 行我添加了 "who called me"),models/__ init 的内容__ .py 在第 6 行下面写着:

from allennlp.models.model import Model

这也不是使用任何参数调用 _load 方法。
请提出建议,我如何找到谁将 cuda_device 参数值传递给加载函数?

您在代码中引入了语法错误。这意味着您的 class 无法导入,更不用说 运行.

如果您想查看 运行 时间堆栈跟踪,请引入 运行 时间错误,而不是语法错误。

a = 1 / 0

应该做。