使用Python调试器(ipdb)时发生NameError
我正在尝试更熟练地使用调试器,并遵循中给出的示例。我目前正在尝试以下脚本:使用Python调试器(ipdb)时发生NameError,python,pdb,ipdb,Python,Pdb,Ipdb,我正在尝试更熟练地使用调试器,并遵循中给出的示例。我目前正在尝试以下脚本: #!/usr/bin/env python import ipdb def test_debugger(some_int): print "start some int>>", some_int return_int = 10 / some_int print "end some_int>>", some_int return return_int if __
#!/usr/bin/env python
import ipdb
def test_debugger(some_int):
print "start some int>>", some_int
return_int = 10 / some_int
print "end some_int>>", some_int
return return_int
if __name__ == "__main__":
ipdb.run("test_debugger(0)")
但是,如果我运行它并尝试按n
,我会得到一个namererror
:
> <string>(1)<module>()
ipdb> n
NameError: "name 'test_debugger' is not defined"
>(1)()
ipdb>n
NameError:“未定义名称“test_debugger”
我从中了解到,应该可以使用
n(ext)
命令运行,直到实际的bug出现。有人能解释一下这里发生了什么吗?从您提到的文档中,解释链接到
对ipdb.run()的调用似乎没有提供globals
或locals
dict,因此test\u调试器
没有在run
的上下文中定义
你可以让它像这样工作:
ipdb.run(“test\u debugger(0)”,{'test\u debugger':test\u debugger})
pdb和ipdb
之间有区别吗?