KeyError: 'darkblue' при использовании trepan3k
Я установил 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. Что происходит и что я могу сделать для отладки с трепаном?
1 ответ
Обновите trepan3k до версии 0.8.9, которую я только что выпустил, и я думаю, что у вас все будет хорошо.
Длинная история. Извините, я не видел этого раньше. Как большой пользователь trepan3k, я заметил это некоторое время назад и работал над этим, используя ранее установленные версии trepan3k. Так как я не знал, что кто-то еще заметил это, я не думал расследовать, не говоря уже о том, чтобы это исправить.
Потом в какой-то момент у меня появилось немного свободного времени, и я занялся расследованиями. Более длинный ответ заключается в том, что после 2.2.0, похоже, произошло обновление в Pygments, которое несовместимо, а имена цветов отличаются.
Хотелось бы мне более подробно понять, что происходит в Pygments. Я подозреваю, что это связано с использованием сокращенного набора названий цветов и обработкой темного и светлого фона таким образом, чтобы не мешать работе при переключении между темным и светлым.
Если есть кто-то, кто знает и прояснит, я был бы благодарен. И бонусные баллы, если вы точно знаете, как изменить Pygments на версию после 2.2.0.
Соответствующий код, который использует трепан для работы с Pygments, - https://github.com/rocky/python3-trepan/blob/master/trepan/lib/format.py
Мне пришлось написать пользовательский форматер для RsT для консоли. Я предложил это сообществу Pygments, но они решили, что это не должно быть в Pygments, но было прекрасно, чтобы оно было в trepan3k таким, какое оно есть.
Это один небольшой пример дополнительной работы, которую вы найдете в этом отладчике, которой нет в других, чтобы обеспечить лучшее взаимодействие с пользователем. Депарсинг, чтобы показать точное местоположение, является еще одним примером. Но это, конечно, означает, что существует большая вероятность поломки, когда пакеты выполняют несовместимое обновление.
Итак, последние два выноса.
- Если есть ошибка в trepan3k, сообщите об этом в трекере: https://github.com/rocky/python3-trepan/issues/new. Я, скорее всего, увижу это там, а не как вопрос о переполнении стека.
- Если вы еще этого не сделали, активируйте проект. Я использую рейтинги github, чтобы помочь мне узнать, над чем работать, когда у меня есть свободное время. (И в последнее время у меня все меньше и меньше).