🚀 取得 (在 VS Code 中!)

在 Visual Studio Code 中進行 Python 程式碼檢查

程式碼檢查會突顯 Python 原始碼中的語意和風格問題,這通常有助於您識別和修正細微的程式設計錯誤或可能導致錯誤的編碼慣例。例如,程式碼檢查可以偵測到使用未定義的變數、呼叫未定義的函式、遺失括號,甚至是更細微的問題,例如嘗試重新定義內建類型或函式。程式碼檢查與格式化不同,因為程式碼檢查會分析程式碼的執行方式並偵測錯誤,而格式化只會重新架構程式碼的呈現方式。

注意:Python 擴充功能的語言伺服器預設已啟用語法錯誤偵測。若要瞭解如何設定語言伺服器,請參閱語言伺服器設定。本文件涵蓋如何啟用程式碼檢查以進行額外的程式碼偵測,包括風格檢查。

選擇程式碼檢查工具

VS Code Marketplace 中搜尋您選擇的程式碼檢查工具擴充功能。如果您願意,可以同時使用多個程式碼檢查工具。

Microsoft 發佈了下列 Python 的程式碼檢查擴充功能

程式碼檢查工具 擴充功能
Pylint https://marketplace.visualstudio.com/items?itemName=ms-python.pylint
flake8 https://marketplace.visualstudio.com/items?itemName=ms-python.flake8
mypy https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker

社群提供的程式碼檢查擴充功能

程式碼檢查工具 擴充功能
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
mypy https://marketplace.visualstudio.com/items?itemName=matangover.mypy

注意:如果您在上方表格或 Marketplace 中找不到您偏好的程式碼檢查工具,您可以透過擴充功能新增對其的支援。您可以使用Python 擴充功能範本將新的 Python 工具整合到 VS Code 中。

一般設定

您可以參考每個程式碼檢查工具擴充功能的 README,以取得有關支援設定的更多詳細資訊。以下設定是大多數程式碼檢查工具擴充功能支援的

設定 預設值 描述
args [] 要傳遞給程式碼檢查工具的引數。注意:官方支援的程式碼檢查工具會在個別開啟的檔案上執行。請確保您的設定適用於該情境。
importStrategy useBundled 當設定為 useBundled 時,擴充功能會使用其隨附的工具版本。當設定為 fromEnvironment 時,它會嘗試先從您選取的 Python 環境載入,否則會回復為隨附的版本。
path "" 要用於程式碼檢查的程式碼檢查工具二進位檔路徑。注意:使用此選項可能會減慢格式化速度。
interpreter [] 當設定為 Python 可執行檔的路徑時,擴充功能將使用該路徑來啟動程式碼檢查伺服器及其子進程。
showNotifications 關閉 控制擴充功能何時顯示通知。支援的值為 offalwaysonErroronWarning

停用程式碼檢查

程式碼檢查工具(如果已安裝)預設為啟用。您可以透過停用每個工作區的擴充功能來停用它們。

執行程式碼檢查

當 Python 檔案開啟或儲存時,程式碼檢查將會自動執行。

錯誤和警告會顯示在 [問題] 面板 (⇧⌘M (Windows、Linux Ctrl+Shift+M)) 中,適用於開啟的檔案,並且也會在程式碼編輯器中醒目提示。將滑鼠游標停留在底線問題上會顯示詳細資訊

Linting messages in the editor and the Problems panel

程式碼動作

某些程式碼檢查工具可能會提供程式碼動作,以協助解決回報的問題。您可以參考您偏好程式碼檢查工具擴充功能的 [功能貢獻] 區段,以瞭解其提供的程式碼動作。

記錄

程式碼檢查工具的記錄可在 [輸出] 面板 (⇧⌘U (Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H)) 中找到,當您從下拉式選單中選取 <程式碼檢查工具名稱> 時。

您可以從命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 執行 [開發人員:設定記錄層級] 命令,以變更程式碼檢查工具擴充功能的記錄層級。從 [擴充功能記錄] 群組中選取擴充功能,然後選取所需的記錄層級。

嚴重性

程式碼檢查工具會報告具有一些預定義嚴重性的問題。可以使用程式碼檢查工具的 severity 設定來變更此設定。請參考每個程式碼檢查工具擴充功能的 README,以取得有關支援值和嚴重性層級的更多詳細資訊。

程式碼檢查疑難排解

問題 原因 解決方案
程式碼檢查工具擴充功能未回報任何問題。 尚未為您的工作區選取 Python。 查看您正在使用的程式碼檢查工具的記錄,並檢查其使用的 Python 環境路徑。如果未選取 Python,請從命令選擇區執行 [Python:選取直譯器] 命令,並為您的工作區選取現有的直譯器。
顯示「您有已棄用的程式碼檢查或格式化設定」通知 如果您看到此通知,表示您在 VS Code 中有 python.linting 或 python.formatting 等設定。Python 擴充功能不再支援這些設定,因為程式碼檢查和格式化支援已移轉至工具擴充功能 在 VS Code 中開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並執行 [喜好設定:開啟使用者設定 (JSON)] 命令,以尋找這些設定的定義位置。如果它們不在您的使用者設定中,則執行 [喜好設定:開啟工作區設定 (JSON)] 命令。然後刪除已棄用的設定。
注意:如果您正在使用遠端開發擴充功能套件中的任何擴充功能,您也可以執行 [喜好設定:開啟遠端設定 (JSON)] 命令來檢查遠端設定。
即使我已安裝程式碼檢查工具擴充功能,程式碼檢查仍無法運作。 程式碼檢查可能會因各種原因而失敗,例如使用了不受支援的 Python 版本,或程式碼檢查工具未正確設定。檢查程式碼檢查工具擴充功能的 [輸出] 通道,以瞭解程式碼檢查工具失敗的原因 (在命令選擇區中執行 [輸出:專注於輸出] 命令,然後選取程式碼檢查工具擴充功能通道)。

後續步驟

  • 格式化 - 瞭解如何格式化您的 Python 程式碼。
  • 偵錯 - 瞭解如何在本地和遠端偵錯 Python。
  • 測試 - 設定測試環境並探索、執行和偵錯測試。
  • 基本編輯 - 瞭解功能強大的 VS Code 編輯器。
  • Python 擴充功能範本 - 建立擴充功能以將您最愛的程式碼檢查工具整合到 VS Code 中。