🚀 在 VS Code 中

在 VS Code 中設定 Python 格式

格式化使人類更容易閱讀原始碼。透過強制執行特定的規則和慣例,例如行距、縮排和運算子周圍的間距,程式碼在視覺上會變得更有條理且更容易理解。您可以在 autopep8 頁面上查看範例。請記住,格式化不會影響程式碼本身的功能。

程式碼檢查 有助於透過分析程式碼中常見的語法、樣式和功能錯誤以及非傳統的程式設計實務來預防錯誤。雖然格式化和程式碼檢查之間有一些重疊,但這兩項功能是互補的。

選擇格式器

VS Code Marketplace 中搜尋您選擇的格式器擴充功能。

Microsoft 發布了以下格式化擴充功能

格式器 擴充功能
autopep8 https://marketplace.visualstudio.com/items?itemName=ms-python.autopep8
Black Formatter https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter

社群提供的格式器擴充功能

格式器 擴充功能
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
yapf https://marketplace.visualstudio.com/items?itemName=eeyore.yapf

此外,以下是支援匯入排序的格式器擴充功能

格式器 擴充功能
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
isort https://marketplace.visualstudio.com/items?itemName=ms-python.isort

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

設定預設格式器

一旦您安裝了格式器擴充功能,您可以按照以下步驟將其選為 VS Code 中 Python 檔案的預設格式器

  1. 在 VS Code 中開啟 Python 檔案。
  2. 在編輯器中按一下滑鼠右鍵以顯示內容功能表。
  3. 選取使用...格式化文件
  4. 從下拉式功能表中選取設定預設格式器...
  5. 從清單中選取您偏好的格式器擴充功能。

或者,您可以透過在您的使用者 settings.json 檔案中的 [python] 範圍下設定 "editor.defaultFormatter",將其設定為所有 Python 檔案的預設格式器。您可以使用偏好設定:開啟使用者設定 (JSON) 命令開啟 settings.json

例如,若要將 Black Formatter 設定為預設格式器,請將以下設定新增至您的使用者 settings.json 檔案

  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter"
  }

為了將格式器擴充功能設定為匯入排序器,您可以在您的使用者 settings.json 檔案或您的工作區 settings.json 檔案中的 [python] 範圍下設定您的偏好設定。您可以使用偏好設定:開啟使用者設定 (JSON)偏好設定:開啟工作區設定 (JSON) 命令分別開啟這些 settings.json 檔案。這將針對所有 Python 檔案啟用儲存時匯入排序。

例如,若要將 Ruff 設定為您偏好的匯入排序器,您可以將以下設定新增至您的使用者 settings.json 或您的工作區 settings.json 檔案

{
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports.ruff": "explicit"
    }
  }
}

格式化您的程式碼

您可以透過在編輯器中按一下滑鼠右鍵並選取格式化文件,或使用 ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) 鍵盤快速鍵來格式化您的程式碼。

您也可以將以下設定新增至您的使用者 settings.json 檔案,以針對您的程式碼啟用儲存時格式化

  "[python]": {
    "editor.formatOnSave": true
  }

一般格式化設定

您可以參考每個格式器擴充功能的 README 以取得有關支援設定的更多詳細資訊。大多數格式器擴充功能都支援以下設定

設定後綴
預設值 描述
args [] 要傳遞給格式器的引數。每個引數都應作為陣列中的個別字串傳遞。
例如
black-formatter.args: ["--line-length", "100"]
importStrategy useBundled 當設定為 useBundled 時,擴充功能會使用它隨附的工具版本。當設定為 fromEnvironment 時,它會嘗試先從您選取的 Python 環境載入,否則會回復為隨附的版本。
path "" 要用於格式化的格式器二進位檔的路徑。注意:使用此選項可能會減慢格式化速度。
interpreter [] 當設定為 Python 可執行檔的路徑時,擴充功能將使用該路徑來啟動格式器伺服器及其子程序。
showNotifications off 控制擴充功能顯示通知的時間。支援的值為 offalwaysonErroronWarning

疑難排解格式化

如果格式化失敗,請檢查以下可能的原因

問題 解決方案
Python 檔案有多個可用的格式器。 依照上面的章節中的指示設定預設格式器。
沒有「使用...格式化文件」選項可用。 如果您在內容功能表中沒有看到此選項,則可能是您沒有在 VS Code 中安裝或啟用格式器擴充功能。請參考選擇格式器章節,以了解如何安裝 Python 格式器擴充功能。
格式器的自訂引數不正確。 檢查適當的 <formatter>.path 設定是否不包含引數,以及 <formatter>.args 是否包含個別頂層引數元素的清單。
顯示「您有已棄用的程式碼檢查或格式化設定」通知。 如果您看到此通知,表示您的 VS Code 中有 python.lintingpython.formatting 等設定。這些設定不再受 Python 擴充功能支援,因為 程式碼檢查和格式化支援已遷移至工具擴充功能
使用 Black Formatter 時,「格式化選取範圍」命令失敗。 black 不支援格式化程式碼區段。為了解決此限制,您可以停用貼上時格式化,並將 formatOnSave 設定為使用以下設定格式化整個檔案:"[python]": {"editor.formatOnPaste": false, "editor.formatOnSaveMode": "file"}
即使我已安裝格式器擴充功能,格式化仍無法運作。 格式化可能會因各種原因而失敗,例如程式碼中的語法問題、使用了不受支援的 Python 版本,或格式器未正確設定。檢查格式器擴充功能的「輸出」通道,以了解格式器失敗的原因(在命令面板中執行輸出:專注於輸出命令,然後選取格式器擴充功能通道)。

注意:如果您在上面找不到您偏好的格式器,您可以透過擴充功能新增支援。Python 擴充功能範本 可讓您輕鬆地將新的 Python 工具整合到 VS Code 中。

後續步驟

  • 偵錯 - 學習在本機和遠端偵錯 Python。
  • 測試 - 設定測試環境並探索、執行和偵錯測試。
  • 基本編輯 - 了解功能強大的 VS Code 編輯器。
  • 程式碼導覽 - 在您的原始碼中快速移動。
  • Python 擴充功能範本 - 建立擴充功能以將您最愛的程式碼檢查器整合到 VS Code 中。