簡體   English   中英

Visual Studio Code Django 調試斷點未在視圖和模板上觸發

[英]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 時觸發)。

我已經嘗試過的幾件事:

  1. 禁用除 Python、Jupiter 和 Pylance 之外的所有其他 VsCode 擴展
  2. 恢復到 4 個月大(我將在下面解釋為什么 4 個月)版本的 VsCode、Python 擴展、PyLance 和 Django
  3. 創建上述基於函數的視圖(也不會觸發斷點)
  4. 創建一個全新的 Django 項目(能夠在一個全新的項目和其他兩個現有項目上重現此項目)

4 個月大的時間線是因為我上次使用 Django 並調試 Views 大約是 4 個月前,所以我想我會嘗試這些版本。 我相當肯定這在我上次嘗試時有效,但我可能弄錯了。

作為參考,我使用的是標准的 Django 啟動配置。 我嘗試更改一些選項,例如--noreloadstopOnEntry ,但這並沒有影響結果。 復制下面的配置文件以供參考:

{
    "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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM