有没有办法在脚本内部实现与python -mpdb相同的功能?

1 投票
3 回答
553 浏览
提问于 2025-04-15 19:44

除了把你所有的代码都放在 tryexcept 里,还有没有其他方法可以像用 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 来直接在调试模式下启动脚本。

撰写回答