[英]Visual Studio Code Django debugging breakpoints not triggered on Views and Templates
我正面临 VsCode 的调试问题,它无法触发任何类型的断点(标准或日志),但特别是在 View 调用和模板上。 Django 项目结构的其他部分中的断点工作正常。 例如在此代码示例中:
class HomeView(TemplateView):
template_name = "home/home.html"
def get(self, request, *args, **kwargs):
return render(request, self.template_name, {})
构造 Class 时将成功触发template_name = "home/home.html"
上的断点。 然而, return render(request, self.template_name, {})
上的断点永远不会触发(我希望它在用户导航到 class 呈现的 URL 时触发)。
我已经尝试过的几件事:
4 个月大的时间线是因为我上次使用 Django 并调试 Views 大约是 4 个月前,所以我想我会尝试这些版本。 我相当肯定这在我上次尝试时有效,但我可能弄错了。
作为参考,我使用的是标准的 Django 启动配置。 我尝试更改一些选项,例如--noreload
和stopOnEntry
,但这并没有影响结果。 复制下面的配置文件以供参考:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}\\manage.py",
"args": [
"runserver"
],
"django": true
}
]
}
此外,在模板中设置断点也不会触发,并且在 get 方法调用的 function 中设置断点不会触发(基本上是 View 调用后的任何内容)。
我从文档中看到的所有内容都表明这应该有效,而且我认为它曾经如此。 这次我错过了什么或发生了什么变化?
终于想通了。 几周前,我为一个项目安装了 gevent ( pip install gevent
)。 这样做将GEVENT_SUPPORT=True
添加到我的环境变量中。 启用后,这会阻止 VsCode 调试 Python 标准库的线程模块。 将此变量更改为False
为我修复了它(当然我此时没有使用 gevent)。
可以在此处找到有关此问题的更多信息: https://github.com/microsoft/debugpy/issues/189
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.