參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

在 Visual Studio Code 中對 Python 進行 Linting

Linting 可以高亮顯示 Python 原始碼中的語義和風格問題,這通常有助於您識別和糾正可能導致錯誤的細微程式設計錯誤或編碼實踐。例如,linting 可以檢測到未定義變數的使用、對未定義函式的呼叫、缺失的括號,甚至更細微的問題,如試圖重新定義內建型別或函式。Linting 與格式化不同,因為 linting 分析程式碼如何執行並檢測錯誤,而格式化僅重構程式碼的顯示方式。

注意:Python 擴充套件的語言伺服器預設啟用了語法錯誤檢測。要了解如何配置語言伺服器,請參閱語言伺服器設定。本文件介紹瞭如何為額外的程式碼檢測(包括風格檢查)啟用 linting。

選擇一個 linter

VS Code Marketplace 中搜索您選擇的 linter 擴充套件。如果您願意,可以同時使用多個 linter。

Microsoft 釋出了以下適用於 Python 的 linting 擴充套件

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

社群提供的 Linting 擴充套件

Linter 擴充套件
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
mypy https://marketplace.visualstudio.com/items?itemName=matangover.mypy

注意:如果您在上面的表格或 Marketplace 中沒有找到您偏好的 linter,您可以透過擴充套件為其新增支援。您可以使用 Python 擴充套件模板 將新的 Python 工具整合到 VS Code 中。

通用設定

您可以參考每個 linter 擴充套件的 README 以獲取有關支援設定的更多詳細資訊。以下設定受大多數 linter 擴充套件支援

設定 預設值 描述
args [] 要傳遞給 linter 的引數。注意:官方支援的 linter 是針對單個開啟的檔案執行的。請確保您的配置適用於該場景。
importStrategy useBundled 當設定為 useBundled 時,擴充套件將使用其附帶的工具版本。當設定為 fromEnvironment 時,它會首先嚐試從您選擇的 Python 環境中載入,否則將回退到捆綁版本。
path "" 用於 linting 的 linter 二進位制檔案路徑。注意: 使用此選項可能會減慢格式化速度。
interpreter [] 當設定為一個 Python 可執行檔案的路徑時,擴充套件將使用它來啟動 linting 伺服器及其子程序。
showNotifications off 控制擴充套件何時顯示通知。支援的值為 offalwaysonErroronWarning

停用 linting

Linter(如果已安裝)預設是啟用的。您可以透過在每個工作區中停用擴充套件來停用它們。

執行 linting

當 Python 檔案被開啟或儲存時,Linting 會自動執行。

錯誤和警告會顯示在“問題”面板(⇧⌘M (Windows, Linux Ctrl+Shift+M))中,適用於開啟的檔案,並且也會在程式碼編輯器中高亮顯示。將滑鼠懸停在帶下劃線的問題上會顯示詳細資訊:

Linting messages in the editor and the Problems panel

程式碼操作

一些 linter 可能會提供程式碼操作,以幫助解決報告的問題。您可以參考您偏好的 linter 擴充套件下的功能貢獻部分,瞭解它提供了哪些程式碼操作。

日誌記錄

當您從下拉選單中選擇 <linter name> 時,linter 的日誌可在“輸出”面板(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H))中檢視。

您可以透過從命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))執行“開發人員: 設定日誌級別”命令來更改 linter 擴充套件的日誌級別。從“擴充套件日誌”組中選擇擴充套件,然後選擇所需的日誌級別。

嚴重性

Linter 會以一些預定義的嚴重性報告問題。這可以透過 linter 的 severity 設定來更改。有關支援的值和嚴重性級別的更多詳細資訊,請參閱每個 linter 擴充套件的 README。

Linting 故障排除

問題 原因 解決方案
Linter 擴充套件未報告任何問題。 您的工作區沒有選擇 Python 直譯器。 檢視您正在使用的 linter 的日誌,並檢查它正在使用的 Python 環境路徑。如果沒有選擇 Python,請從命令面板執行“Python: 選擇直譯器”命令,併為您的工作區選擇一個現有的直譯器。
顯示“您有已棄用的 linting 或格式化設定”通知 如果您看到此通知,這意味著您在 VS Code 中有諸如 python.lintingpython.formatting 之類的設定。Python 擴充套件已不再支援這些設定,因為linting 和格式化支援已遷移到工具擴充套件 透過開啟命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))並執行“首選項: 開啟使用者設定 (JSON)”命令,找到這些設定在 VS Code 中的定義位置。如果它們不在您的使用者設定中,則執行“首選項: 開啟工作區設定 (JSON)”命令。然後刪除這些已棄用的設定。
注意:如果您正在使用遠端開發擴充套件包中的任何擴充套件,您也可以透過執行“首選項: 開啟遠端設定 (JSON)”命令來檢查遠端設定。
即使我安裝了 linter 擴充套件,linting 也不起作用。 Linting 失敗的原因可能有很多,例如使用了不受支援的 Python 版本,或者 linter 配置不正確。檢查 linter 擴充套件的輸出通道以瞭解 linter 失敗的原因(在命令面板中執行“輸出: 聚焦於輸出”命令,然後選擇 linter 擴充套件通道)。

後續步驟

  • 格式化 - 瞭解如何格式化您的 Python 程式碼。
  • 除錯 - 瞭解如何在本地和遠端除錯 Python。
  • 測試 - 配置測試環境以及發現、執行和除錯測試。
  • 基本編輯 - 瞭解功能強大的 VS Code 編輯器。
  • Python 擴充套件模板 - 建立一個擴充套件,將您最喜歡的 linter 整合到 VS Code 中。