我目前的临时方法是记录到一个文本文件,但是交互性不是很好,我试过使用pdb,但是看起来不沿着urwid,pdb在遇到断点时不接受任何输入。
pdb
xa9qqrwz1#
接下来的几个实践...调试urwid很奇怪,从传统的意义上说也不太可能,大多数时候在渲染画布之后,你不能再检查东西了。帮助我的是:
我知道这算不上调试,但它在查找错误或奇怪行为方面帮助了我很多。
9wbgstp72#
我发现自己正在做的一件事就是添加一个文本小部件来显示调试消息。我没有构建过很多复杂的应用程序(solitaire game是我用它编写的最大的应用程序),所以这种方法已经足够好了。在某些特定情况下,您可能仍然可以使用PUDB--但由于它也使用了Urwid,它将窃取应用程序的输出。实际上,在您从应用程序转到pudb(可能是从添加到代码中的pudb.set_trace()断点)之后,您将无法返回应用程序。对于更复杂的应用程序,构建一个“调试模式”可能会很有趣,或者你可以尝试使用remote pudb?还没有尝试过,但它看起来很有用。
pudb.set_trace()
33qvvth13#
为了防止有人寻找更好的答案,我可以报告VSCode的Python调试器debugpy非常适合调试urwid应用程序(通常也适合调试Python)。您的调试器完全独立于控制台,不会干扰绘图。
3条答案
按热度按时间xa9qqrwz1#
接下来的几个实践...调试urwid很奇怪,从传统的意义上说也不太可能,大多数时候在渲染画布之后,你不能再检查东西了。
帮助我的是:
我知道这算不上调试,但它在查找错误或奇怪行为方面帮助了我很多。
9wbgstp72#
我发现自己正在做的一件事就是添加一个文本小部件来显示调试消息。
我没有构建过很多复杂的应用程序(solitaire game是我用它编写的最大的应用程序),所以这种方法已经足够好了。
在某些特定情况下,您可能仍然可以使用PUDB--但由于它也使用了Urwid,它将窃取应用程序的输出。实际上,在您从应用程序转到pudb(可能是从添加到代码中的
pudb.set_trace()
断点)之后,您将无法返回应用程序。对于更复杂的应用程序,构建一个“调试模式”可能会很有趣,或者你可以尝试使用remote pudb?还没有尝试过,但它看起来很有用。
33qvvth13#
为了防止有人寻找更好的答案,我可以报告VSCode的Python调试器debugpy非常适合调试urwid应用程序(通常也适合调试Python)。您的调试器完全独立于控制台,不会干扰绘图。