有没有办法在脚本内部实现与python -mpdb相同的功能?
除了把你所有的代码都放在 try
和 except
里,还有没有其他方法可以像用 python -mpdb script
这样运行你的脚本?我想在出现错误的时候能看到到底出了什么问题。
3 个回答
-1
这段代码是用来在Python程序中设置一个调试点的。简单来说,当你在代码里写上这行代码后,程序会在这里暂停,让你可以检查程序的状态,比如变量的值或者程序的运行情况。
调试的工具叫做pdb,它是Python自带的一个调试器。通过这个工具,你可以一步一步地运行代码,找出问题所在。
想了解更多,可以去这个链接看看:http://docs.python.org/library/pdb.html
1
python -i script
当出现错误时,它会让你停留在交互式命令行中;然后
import pdb
pdb.pm()
它会把你带入事后调试器,这样你就可以进行所有常规的调试操作。
只要你的脚本没有调用 sys.exit,这个方法就可以正常使用。(脚本不应该调用这个,因为这样会破坏这个非常有用的技巧!而且还会让编写测试变得更困难。)
3
如果你不想修改源代码,可以使用 ipython 来运行它,这是一种增强版的交互式 Python 终端。
比如,你可以先运行 ipython,然后输入 %pdb on
来开启事后调试功能。接着,使用 %run scriptname
来运行你的脚本,这样一旦出现未处理的错误,就会自动进入调试模式。
另外,你也可以用 %run -d scriptname
来直接在调试模式下启动脚本。