🚀 在 VS Code 中免費取得

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

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

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

選擇程式碼檢查工具 (Linter)

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

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

程式碼檢查工具 (Linter) 擴充功能
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

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

程式碼檢查工具 (Linter) 擴充功能
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 off 控制擴充功能何時顯示通知。支援的值為 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.lintingpython.formatting 等設定。Python 擴充功能不再支援這些設定,因為程式碼檢查和格式化支援已移轉至工具擴充功能 透過開啟命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並執行偏好設定:開啟使用者設定 (JSON) 命令,找出這些設定在 VS Code 中的定義位置。如果它們不在您的使用者設定中,則執行偏好設定:開啟工作區設定 (JSON) 命令。然後刪除已淘汰的設定。
注意:如果您使用遠端開發擴充功能套件中的任何擴充功能,您也可以透過執行偏好設定:開啟遠端設定 (JSON) 命令來檢查遠端設定。
即使我已安裝程式碼檢查工具擴充功能,程式碼檢查仍無法運作。 程式碼檢查可能會因各種原因而失敗,例如使用不受支援的 Python 版本,或程式碼檢查工具未正確設定。檢查程式碼檢查工具擴充功能的輸出通道,以了解程式碼檢查工具失敗的原因 (在命令面板中執行輸出:聚焦於輸出命令,然後選取程式碼檢查工具擴充功能通道)。

後續步驟