我可以使用Color输出Python调试器pdb吗?

时间:2010-08-15 15:48:57

标签: python debugging terminal pdb

我正在使用PDB,如果我能在颜色中添加systax突出显示会更好。

理想情况下,我希望代码的路径更轻一些。 实际代码行将突出显示语法。

我正在使用OS X和终端应用。 Python 2.7

5 个答案:

答案 0 :(得分:22)

pdb不支持着色。然而,即使你是一个命令行上瘾者(就像我一样;-),也不难获得它,你不必在调试Python时只需要切换到GUI / IDE来获得颜色。特别是,当您通过SSH访问远程计算机时,命令行工具通常可以更好地工作,从而节省了许多带宽和延迟问题,任何远程访问GUI和IDE都会对您造成影响; - 。)

具体来说,对于您要询问的任务,请考虑ipdb(您还需要ipython,它提供比普通交互式Python更高级的shell,ipdb依赖于它)。两者都为您正常的交互式工作提供了良好的标签完成,增强的追溯,着色 - ipythonipdb在您调试时具有相同的功能(否则只是关于与pdb)相同。

答案 1 :(得分:7)

您可以尝试pudb,它在终端中运行,如下所示:

pudb screenshot

我没有尝试过其他答案中提到的一些选项,但是从PyPI页面判断,pudb可以更好地维护并更好地记录。

答案 2 :(得分:3)

查看pdb++ - 它是pdb的替代品,可以满足您的所有要求,并添加了一些其他不错的功能,例如标签完成和新命令,如watch和sticky。

答案 3 :(得分:1)

如果有人在控制台中遇到了彩色问题。

我的控制台有白色背景,而ipdb也为语法添加了相当浅的颜色(例如变量为白色)。逼人ipython表明我们有3种颜色可供选择:'nocolor','linux','LightBG'。在我的案例中,Ipdb通过easy_install安装到我的virtualenv中。因此,查看ipdb源并修改它(在你的env中提示搜索ipdb / init .py)是微不足道的。然后我修改了以下内容:

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

这有点像黑客的解决方案,但它在我的工作站的目的是为了充分。但如果有人找到更好的东西。请给我发消息该怎么做。

答案 4 :(得分:0)

这可能不适合您,但您是否尝试过使用图形化调试器(如eclipse / pydev中的那个)?它将为您提供语法突出显示等等。

如果我没有选项,我只会直接使用pdb,因为图形界面要好得多。