Python:我可以在导入的函数中设置pdb.set_trace()

时间:2016-04-04 15:46:15

标签: python debugging python-import pdb

我正在运行python脚本。在这个脚本中,我从另一个模块导入一个函数,如:

from preprocessing import train_batch

在我运行的脚本中调用train_batch函数。现在更详细地检查train_batch,我在preprocessing.py的{​​{1}}中找到pdb.set_trace()并插入train_batch,但它不起作用。

所以我想问:我可以在导入的模块中使用preprocessing.py吗?如果可以,那么这必定意味着我发现的模块是错误的,我需要找到合适的位置。如果我不能,那么有必要检查导入的功能吗?

2 个答案:

答案 0 :(得分:2)

您可以在Python代码*的任何位置执行import pdb; pdb.set_trace()。如果"没有工作"我假设你的意思是你从未放入pdb。这意味着没有执行代码行。

你可以使用'在pdb中命令进入代码,即使它不是你自己的代码。只要它是Python而不是C代码,你应该没问题。我不确定C代码会发生什么。

  • 除了lambda。但总的来说,任何地方

答案 1 :(得分:0)

是。 pdb.set_trace()只是一个函数调用;你可以把它放在你可以进行任何其他函数调用的任何地方。