urwid 应用程序调试的好选择是什么?

7

我目前的临时方法是将日志记录到文本文件中,但这并不是很交互式。我尝试使用pdb,但它似乎与urwid不兼容,pdb一旦达到断点就不会接受任何输入。

3个回答

5
几次实践之后,调试urwid变得奇怪且不太可能以传统的方式进行,大多数情况下,在渲染画布后你不能再检查问题了。
以下是帮助我的方法:
1. 将错误记录到文件中。如果您遇到异常并想要了解什么,何时以及如何发生异常,请参考此处的好实现:https://stackoverflow.com/a/12877023/5058041 2. 真正尝试理解您的模块是什么以及您想要实现什么。阅读 n+1 次文档是个好主意。 3. 查看您使用的小部件的实现。它们通常会提供更多信息。
我知道这不算真正的调试,但它帮助我在找到错误或奇怪行为方面有很大帮助。

2
我发现自己做的一件事情是添加一个文本小部件来显示调试信息。
我没有构建过许多复杂的应用程序(纸牌游戏是我写的最大的应用程序),所以这种方法已经足够好了。
在某些特定情况下,您可能仍然可以使用PUDB,但由于它也使用Urwid,它将从应用程序中窃取输出。实际上,在您从应用程序转到pudb之后(可能是通过在代码中添加pudb.set_trace()断点),您将无法返回到应用程序。
对于更复杂的应用程序,构建“调试模式”可能会很有趣,或者您可以尝试使用远程pudb?我还没有尝试过,但看起来很有用。=)

0

如果有人正在寻找更好的答案,我可以报告说,VSCode的Python调试器debugpy非常适合调试urwid应用程序(以及调试Python一般情况)。您的调试器完全独立于控制台,不会干扰绘图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接