使用trace和PYREPL_TRACE调试新的Python REPL

文摘   2024-09-15 10:02   上海  

从Python 3.13开始,Python REPL是用Python编写的。这意味着如果你在调试REPL并在REPL的代码中添加了print调用,然后运行REPL,调试打印将会出现在REPL中,就在你正在尝试调试的内容中间。这可能会变得相当混乱。

为了帮助缓解这个问题,REPL包含了一个简短的子模块trace,它实现了trace函数,可用于调试。它类似于print函数,但不是写入控制台,而是写入文件。

然后可以使用环境变量PYREPL_TRACE来设置trace.trace写入的文件路径。实际上,我的做法是(感谢Łukasz)在两个相邻的终端中,在一个终端运行tail -f PATH_TO_FILE,在另一个终端运行PYREPL_TRACE=PATH_TO_FILE python,这会打开REPL并将跟踪实时打印到我的第二个终端窗口。

如果你安装了Python 3.13,你可以自己尝试一下:

幻想发生器
图解技术本质
 最新文章