Can I get Python debugger pdb to output with Color?

Viewed 6083

I'm using PDB a lot and it seems it would be even better if I could add systax highlighting in color.

Ideally, I'd like to have to the path to the code a lighter color. The line of actual code would be syntax highlighted.

I'm using OS X and the Terminal app. Python 2.7

5 Answers

You could try pudb, which works in the terminal and looks like this:

pudb screenshot

I haven't tried some of the options mentioned in other answers, but to judge from the PyPI pages, pudb is better maintained and better documented.

In case someone hit the problem with colorization in a console.

My console had white background while ipdb was also adding rather light colors to syntax (for example variables were white). Pressing man ipython shows that we have 3 colors available: 'nocolor', 'linux', 'LightBG'. Ipdb was in my case installed via easy_install into my virtualenv. So it was trivial to look into ipdb source and modify it (hint search for ipdb/init.py in your env). Then I've modified following:

def set_trace():
    ip = ipapi.get()
    + def_colors = ip.options.colors
    + def_colors = 'LightBG'
    Pdb(def_colors).set_trace(sys._getframe().f_back)

It's a kinda hackish solution but well its for debugging purpose on my working station so its sufficient. But if anyone finds something better. Please send me a message on what to do.

Related