1

我安装了trepan3k并且pip3 install 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 上。发生了什么,我可以做些什么来调试环钻?

4

1 回答 1

1

将 Trepan3k 升级到我刚刚发布的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 以显示确切的位置是另一个例子。但这当然意味着当软件包进行不兼容的升级时,损坏的可能性更大。

所以最后的两个外卖。

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