VSCode Jupyter Notebook调试因Python类__repr__计算缓慢卡顿
VSCode Jupyter Notebook调试卡顿问题
问题现象
调试代码时收到如下警告:
pydevd warning: Computing repr of Out (dict) was slow (took 6.62s) Customize report timeout by setting the `PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT` environment variable to a higher timeout (default is: 0.5s)
每一步单步执行耗时极久,核心原因是调试器会自动解析所有已定义变量的repr,即便未主动要求打印这些变量。
尝试过的无效解决方案
- 尝试禁用自动变量解析
- 在Notebook或调试会话中设置
PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT、PYDEVD_DISABLE_VARIABLE_LOOKUP等环境变量
以上操作均未解决卡顿问题。
可复现代码示例
import time class MyClass: def __init__(self, value): self.value = value def __repr__(self): time.sleep(5) c1 = MyClass("asd") c2 = MyClass("bcd") c3 = MyClass("bcd2")
将断点设置在c1初始化之后,调试器会出现明显卡顿。
额外发现
该问题仅在VSCode的Jupyter Notebook环境中出现,相同代码在Python调试器中(隐藏“变量”面板后)不会发生卡顿。
内容的提问来源于stack exchange,提问作者Maksim Gayduk
相关产品推荐
相关产品推荐

