KeyError:使用 Trepan3k 时出现“深蓝色”

Posted

技术标签:

【中文标题】KeyError:使用 Trepan3k 时出现“深蓝色”【英文标题】:KeyError: 'darkblue' when using trepan3k 【发布时间】:2019-08-02 09:33:18 【问题描述】:

我用pip3 install trepan3k 安装了trepan3k,我想用trepan3k main.py 调试一个文件,但是我收到了这个错误:

Traceback (most recent call last):
  File "/usr/local/bin/trepan3k", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/trepan/cli.py", line 212, in main
    normal_termination = dbg.run_script(mainpyfile)
  File "/usr/local/lib/python3.7/site-packages/trepan/debugger.py", line 217, in run_script
    exec(compiled, globals_, locals_)
...
  File "/usr/local/lib/python3.7/site-packages/pygments/formatters/terminal.py", line 101, in format
    return Formatter.format(self, tokensource, outfile)
  File "/usr/local/lib/python3.7/site-packages/pygments/formatter.py", line 95, in format
    return self.format_unencoded(tokensource, outfile)
  File "/usr/local/lib/python3.7/site-packages/pygments/formatters/terminal.py", line 126, in format_unencoded
    outfile.write(ansiformat(color, line.rstrip('\n')))
  File "/usr/local/lib/python3.7/site-packages/pygments/console.py", line 68, in ansiformat
    result.append(codes[attr])
KeyError: 'darkblue'
Uncaught exception. Entering post-mortem debugger...
trepan3k: That's all, folks...

这发生在 macOS Mojave 和 Ubuntu 18.04 上。发生了什么事,我可以做些什么来使用 Trepan 进行调试?

【问题讨论】:

【参考方案1】:

将trepan3k升级到我刚刚发布的version 0.8.9,我想你会没事的。

更长的故事。很抱歉我没有早点看到这个。作为我自己的 Trepan3k 的大用户,我不久前就注意到了这一点,并且一直在使用以前安装的 trepan3k 版本来解决这个问题。因为我不知道其他人注意到了这一点,所以我没有想过要调查,更不用说修复它了。

然后在某个时候,我有一些空闲时间,并进行了调查。更长的答案是,似乎在 2.2.0 之后对 Pygments 进行了更新,不兼容并且颜色名称不同。

我希望我能更详细地了解 Pygments 中发生了什么。我怀疑这与使用一组减少的颜色名称和处理深色和浅色背景有关,当您在深色和浅色之间切换时不会弄乱。

如果有人知道并会阐明我将不胜感激。如果您确切知道如何将 Pygments 更改为 2.2.0 之后的版本,则可以加分。

trepan 用于处理 Pygments 的相关代码是 https://github.com/rocky/python3-trepan/blob/master/trepan/lib/format.py

我必须为 RsT 编写一个自定义格式化程序来控制台。我已经向 Pygments 社区提供了这个,但他们认为这不应该出现在 Pygments 中,但它可以像现在这样在 trepan3k 中使用。

这是您在此调试器中发现的额外工作的一个小示例,这些工作在其他调试器中没有,以支持更好的用户体验。 Deparsing 以显示确切的位置是另一个例子。但这当然意味着,当软件包进行不兼容的升级时,损坏的可能性更大。

最后两个要点。

    如果 Trepan3k 中存在错误,请在其问题跟踪器中报告:https://github.com/rocky/python3-trepan/issues/new。我更有可能在那里看到这一点,而不是 Stack Overflow 问题。 如果您还没有,请为该项目投票。我使用 Github 评分来帮助指导我了解空闲时间的工作。

【讨论】:

非常感谢您花时间回答这个问题,并感谢您修复它。我真的很喜欢将 trepan 作为 pdb 的替代品,并将其用于 python2 项目,但我不明白为什么 trepan3k 不能用于我的 python3 项目......

以上是关于KeyError:使用 Trepan3k 时出现“深蓝色”的主要内容,如果未能解决你的问题,请参考以下文章

Key存在时出现KeyError

打开远程 zarr 商店时出现 KeyError '.zmetadata'

KeyError:使用 Huggingface Transformers 使用 BioASQ 数据集时出现“答案”错误

使用日期时间绘制切片熊猫数据框时出现 KeyError

使用 Pandas 访问 csv 文件时出现 KeyError

尝试使用 pymssql 连接到数据库时出现 KeyError