Pythonic debugging - Re: Python Debugger / IDE ??

robert no-spam at no-spam-no-spam.com
Fri Mar 17 04:55:00 EST 2006


bruno at modulix wrote:

> krypto.wizard at gmail.com wrote:
> 
>>Is there any editor or IDE in Python (either Windows or Linux) which
>>has very good debugging facilites like MS VisualStudio has or something
>>like that.
>>
>>I like SPE but couldn't easily use winPDP. I need tips to debug my code
>>easily.
> 
> 
> pythonic "debugging" in three steps:
> 
> 1/ unit tests
> 2/ a bunch of print statements
> 3/ the interactive python shell
> 
> All this relying on well-decoupled, modular code.
> 
> FWIW, I've almost never used a debugger with Python.

Thats a good socket for Python.
Arduos step-in debugging, big tedious remote debugging sessions etc. are 
not really Pythonic. For complex things like GUI's and application 
servers its a weak practice.

logs, postmortem debugging and ad-hoc debugging are the things to go next.

so its good when you can do  .pm() .set_trace() to call the debugger 
from the nature of your program.  (And not: "The the debugger now calls 
the app, once my level of anger raised beyond a certain limit").

For example with callable debuggers like pdb and also Pythonwin 
(Pythonwin debugger "pywin.debugger.pm()" e.g. can be raised as simple 
from normal apps / shell ) I simply do this in apps regularly:

if debug:  sys.excepthook = excepthook_my_debugger

As soon as stuff crashes down (even in GUI message handlers) during all 
of the development cycle: you have your fingers and cursor automatically 
& immediatly at the stack context. That does >99% of usual python code 
cooking. The rest is maybe for a (slow) breakpoint "b"

Unfortunately such method is not encouraged and exposed (clearly) in the 
big IDE's. Those' overall style is a lazy copy of C, Java "I do"-hacker 
history. Im curious much about their value at all. Keep it simple and 
let Python do.

Robert







More information about the Python-list mailing list