i'd have debugger run post_mortem()
time exception encountered, without having modify source i'm working on. see lots of examples involve wrapping code in try/except block, i'd have run, regardless of i'm working on.
i worked on python wrapper script got ugly , pretty unusable.
i use pudb, api-equivalent pdb, pdb-specific answer fine. run code within editor (vim) , have pm come time exception encountered.
it took few months of not doing it, happened stumble upon solution. i'm sure nothing new more experienced.
i have following in environment:
export pythonuserbase=~/.python export pythonpath=$pythonpath:$pythonuserbase
and have following file:
~/.python/lib/python2.7/site-packages/usercustomize.py
with following contents:
import traceback import sys try: import pudb debugger except importerror: import pdb debugger def drop_debugger(type, value, tb): traceback.print_exception(type, value, tb) debugger.pm() sys.excepthook = drop_debugger __builtins__['debugger'] = debugger __builtins__['st'] = debugger.set_trace
now, whether interactively or otherwise, debugger jumps in upon exception. might nice smarten some.
it's important make sure have no no-global-site-packages.txt
in site-packages
. disable usercustomize
module default site.py
(my virtualenv had no-global-site-packages.txt
)
just in case others, left in bit modifying __builtins__
. find quite handy able rely on tools being available.
flavor taste.
Comments
Post a Comment