VS调试Django项目时调试器无本地变量显示问题咨询
Visual Studio调试最新版Django时本地变量不显示修复方案
问题复现代码
from django.shortcuts import render from django.http import HttpResponse # Create your views here. def calculate(): x = 1 y = 2 return x def say_hello(request): x = calculate() return render(request, 'hello.html', {'name': 'Sir Pickles'})
排查修复步骤
- 关闭调试器「仅我的代码」功能
最新版Visual Studio Python调试模块存在栈帧识别问题,开启仅我的代码时会误将用户编写的Django视图、工具函数判定为框架代码,直接屏蔽局部变量读取。操作路径:顶部菜单选择「调试」→「选项」,展开「Python」分类下的「调试」设置页,取消勾选启用仅我的代码,保存后重启调试即可。 - 移除Python优化启动参数
若调试启动配置中添加了-O、-OO优化参数,或是系统环境变量设置了PYTHONOPTIMIZE=1/2,Python解释器会丢弃局部变量调试符号,导致调试器无法读取变量值。排查时直接打开项目调试属性页,清空解释器参数栏的优化参数,同时删除对应环境变量配置即可。 - 关闭Django开发服务器热重载
Django默认启动的开发服务器带热重载功能时,会生成子进程处理实际请求,Visual Studio调试器默认附加到父进程,无法读取子进程内的变量信息。在调试启动的命令参数中添加--noreload关闭热重载,即可让调试器正确挂载到运行代码的进程上。 - 重装Python调试组件
部分版本Visual Studio自带的debugpy调试组件存在Django上下文枚举bug,会导致请求栈帧的变量读取失败。打开Visual Studio Installer,找到已安装的Python开发工作负载,取消勾选「Python调试器」组件完成卸载后,重新勾选安装,重启VS即可恢复正常。
以上步骤验证后,在
calculate函数return x行、say_hello函数x = calculate()行打断点调试,本地变量面板可正常展示当前作用域下的x、y、request等变量值。
内容的提问来源于stack exchange,提问作者user4963654
相关产品推荐
相关产品推荐

