VS Code使用同项目.venv内Python解释器调试时无法查看变量如何解决
问题原因与修复方案
核心原因
- VS Code Python 插件默认会把当前工作区下的
.venv目录加入调试排除路径,设计目的是避免用户调试第三方库代码时产生不必要的中断。当你调试的代码存放在当前项目.venv目录内时,调试器会直接跳过执行追踪,不会加载调试工具栏,也不会捕获运行时变量。 - 指定其他项目的
.venv作为解释器时,对应目录不在当前工作区的默认排除列表中,因此调试功能不受影响。使用当前项目的.venv调试目录外的代码功能正常,也完全符合该逻辑。 - 极小概率为当前项目
.venv内安装的debugpy版本与VS Code Python插件版本不兼容,导致调试器挂载失败。
修复方案
- 修改工作区
settings.json,删除.venv在调试排除列表中的配置:找到python.debugger.excludePaths配置项,移除其中包含**/.venv/**的规则,也可以手动添加需要调试的.venv内的代码路径到python.debugger.includePaths中。 - 若为
debugpy版本兼容问题,激活当前项目的虚拟环境后执行pip install --upgrade debugpy更新到最新版本即可。 - 不建议将业务代码存放在
.venv目录下,该目录设计用途为存储虚拟环境依赖,和业务代码隔离是通用开发规范,这也是该场景在Pycharm中无异常的核心原因——Pycharm默认不会拦截.venv内代码的调试权限。
内容的提问来源于stack exchange,提问作者Nick Nguyen
相关产品推荐
相关产品推荐

