🚀 在 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] 範圍下,設定您的喜好設定在 "editor.codeActionsOnSave" 中。您可以使用喜好設定:開啟使用者設定 (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 中。