gpt4 book ai didi

python - 在 python 中进行交互式调试的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:04:19 25 4
gpt4 key购买 nike

我想利用 python 的内省(introspection)功能进行调试/开发,但找不到合适的工具。

我需要在特定位置或特定事件(如异常)进入 shell(例如 IPython),并将 shell 的局部变量和全局变量设置为框架的变量。

我自己的快速技巧来说明它:

import inspect
from IPython.Shell import IPShellEmbed
def run_debug():
stack = inspect.stack()
frame = stack[1][0]
loc = frame.f_locals
glob = frame.f_globals
shell = IPShellEmbed()
shell(local_ns=loc, global_ns=glob)

从“断点”或 try/except 调用相应的 run_debug()。但是,显然,这需要大量改进,尤其是要正确使用线程应用程序。

winpdb 有控制台断点,但我发现没有办法从它快速运行正确的 python shell,并且 eval()/exec() 对于长时间调试不是很方便。

最佳答案

与您已经在做的类似,有 ipdb .实际上,它是带有 ipython 外壳的 pdb(即制表符补全、所有各种魔术功能等)。

它实际上正在执行您在问题中发布的小代码片段所做的事情,只是将其包装到一个简单的“ipdb.set_trace()”调用中。

关于python - 在 python 中进行交互式调试的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3309878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com