使用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
之间有区别吗?