我想在我的脚本中使用shebang行,例如
#! /usr/env/bin python
但是在调试时我也希望自动调用pdb / ipdb,如下所示:
python -m ipdb myscript.py
有没有办法将这些结合起来?换句话说,是否有一个版本的shebang也将在失败时自动调用pdb / ipdb?类似的东西:
#! /usr/env/bin python -m ipdb
答案 0 :(得分:1)
你不能轻易地在shebang行传递额外的参数,因为shell没有解析参数。有work-arounds for that。
然而,我会在异常时调用事后调试器。如果您的脚本中有main()
功能,请使用:
try:
main()
except Exception:
import ipdb, sys
ipdb.post_mortem(sys.exc_info()[2])
其中ipdb.post_mortem()
必须采用追溯对象。 pdb.post_mortem()
版本不需要它,因为如果没有传入回溯,它会自行选择它。