17

我经常使用 PDB,如果我可以添加 systax 突出显示的颜色似乎会更好。

理想情况下,我希望代码路径的颜色较浅。实际代码行将突出显示语法。

我正在使用 OS X 和终端应用程序。蟒蛇 2.7

4

5 回答 5

25

pdb不支持着色。然而,即使你是一个命令行上瘾者(就像我一样;-),它并不难获得——你不必为了在调试 Python 时获得着色而切换到 GUI/IDE。特别是,当您通过 SSH 访问远程计算机时,命令行工具通常工作得更好,从而节省了大量对 GUI 和 IDE 的远程访问可能对您造成的带宽和延迟问题;-)。

具体来说,对于您要询问的任务,请考虑ipdb(您还需要ipython,它提供了比普通交互式 Python 更高级的 shell,它ipdb依赖于它)。两者都为您提供了良好的制表符补全、增强的回溯着色——ipython对于您的正常交互式工作,ipdb在您调试时具有相同的功能(否则与 几乎相同pdb)。

于 2010-08-15T16:08:59.080 回答
9

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

pudb截图

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

于 2012-04-03T10:13:25.280 回答
7

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

这是一个启用颜色的示例配置文件(在创建文件后添加:)touch ~/.pdbrc.py

import pdb

class Config(pdb.DefaultConfig):
    use_pygments = True
    pygments_formatter_class = "pygments.formatters.TerminalTrueColorFormatter"
    pygments_formatter_kwargs = {"style": "monokai"}
于 2010-08-15T21:09:36.503 回答
0

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

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

于 2010-08-15T15:52:29.330 回答
0

以防有人在控制台中遇到着色问题。

我的控制台有白色背景,而 ipdb 也在语法中添加了相当浅的颜色(例如变量是白色的)。按 man ipython 显示我们有 3 种颜色可用:'nocolor'、'linux'、'LightBG'。在我的情况下,Ipdb 是通过 easy_install 安装到我的 virtualenv 中的。因此,查看 ipdb 源并对其进行修改是微不足道的(提示在您的环境中搜索 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)

这是一个有点骇人听闻的解决方案,但它可以在我的工作站上进行调试,所以它足够了。但如果有人发现更好的东西。请给我发消息告诉我该怎么做。

于 2011-02-17T11:34:49.813 回答