You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio Code中禁用debugpy/pydevd的属性求值

解决debugpy调试时触发数据库属性访问的问题

关于超时设置的疑问

  • 缩短PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT会提前终止属性求值:当属性访问耗时超过设置的阈值,debugpy会停止等待并抛出警告,不会等到30秒的内部上限。
  • 设置为0不会禁用属性访问,仅会关闭慢属性的警告提示,但debugpy仍会尝试访问所有属性,依然会触发数据库查询。

完全禁用属性求值的方案

1. 全局禁用自动属性求值

在VS Code的调试配置文件launch.json中添加环境变量配置,全局关闭debugger的自动属性解析:

"env": {
    "PYDEVD_DISABLE_VALUES_EVALUATION": "1"
}

该方式会停止所有对象的属性自动求值,适合全局规避此类问题,但会导致调试时无法直观查看对象属性。

2. 按需限制特定对象的可访问属性(推荐)

给目标类添加__dir__方法,仅返回无需触发数据库查询的属性列表,debugpy会依据此列表解析属性:

class Study:
    def __dir__(self):
        # 只返回无DB查询的属性
        return ["id", "name", "created_at"]

3. 临时禁用当前帧的属性求值

在调试会话进入目标帧时,可在VS Code调试控制台执行命令临时关闭属性求值:

import debugpy
debugpy.configure({"disable_values_evaluation": True})

需要恢复时执行:

debugpy.configure({"disable_values_evaluation": False})

补充说明

你遇到的30秒耗时上限是debugpy内部的硬限制,无法通过环境变量修改,只能通过上述方案避免触发耗时的属性访问。

内容的提问来源于stack exchange,提问作者Daraan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 20:12:04