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 时出现“深蓝色”的主要内容,如果未能解决你的问题,请参考以下文章
打开远程 zarr 商店时出现 KeyError '.zmetadata'
KeyError:使用 Huggingface Transformers 使用 BioASQ 数据集时出现“答案”错误