在 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 檔案的預設格式器
- 在 VS Code 中開啟 Python 檔案。
- 在編輯器中按一下滑鼠右鍵以顯示內容功能表。
- 選取使用...格式化文件。
- 從下拉式功能表中選取設定預設格式器...。
- 從清單中選取您偏好的格式器擴充功能。
或者,您可以透過在您的使用者 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 |
控制擴充功能何時顯示通知。支援的值為 off 、always 、onError 和 onWarning 。 |
疑難排解格式設定
如果格式設定失敗,請檢查下列可能原因
問題 | 解決方案 |
---|---|
有多個格式器可用於 Python 檔案。 | 依照上方章節中的指示設定預設格式器。 |
沒有「使用...格式化文件」選項。 | 如果您在內容功能表中沒有看到此選項,則可能是您沒有在 VS Code 中安裝或啟用格式器擴充功能。請參考選擇格式器章節,以瞭解如何安裝 Python 格式器擴充功能。 |
格式器的自訂引數不正確。 | 檢查適當的 <formatter>.path 設定是否未包含引數,以及 <formatter>.args 是否包含個別最上層引數元素的清單。 |
顯示「您有已淘汰的程式碼瑕疵檢查或格式設定」通知。 | 如果您看到此通知,表示您的 VS Code 中有 python.linting 或 python.formatting 等設定。Python 擴充功能不再支援這些設定,因為程式碼瑕疵檢查和格式設定支援已移轉至工具擴充功能。 |
使用 Black Formatter 時,「格式化選取範圍」命令失敗。 | black 不支援格式化程式碼區段。若要解決此限制,您可以停用貼上時格式設定,並將 formatOnSave 設定為使用下列設定格式化整個檔案:"[python]": {"editor.formatOnPaste": false, "editor.formatOnSaveMode": "file"} 。 |
即使我已安裝格式器擴充功能,格式設定仍無法運作。 | 格式設定可能會因各種原因而失敗,例如程式碼中的語法問題、使用的 Python 版本不受支援,或格式器未正確設定。檢查格式器擴充功能的 [輸出] 通道,以瞭解格式器為何失敗 (在命令面板中執行輸出:專注於輸出命令,然後選取格式器擴充功能通道)。 |
注意:如果您在上方找不到您偏好的格式器,您可以透過擴充功能新增支援。Python 擴充功能範本讓您可以輕鬆地將新的 Python 工具整合到 VS Code 中。
後續步驟
- 偵錯 - 瞭解如何在本地和遠端偵錯 Python。
- 測試 - 設定測試環境,並探索、執行和偵錯測試。
- 基本編輯 - 瞭解功能強大的 VS Code 編輯器。
- 程式碼導覽 - 在您的原始碼中快速移動。
- Python 擴充功能範本 - 建立擴充功能以將您最愛的程式碼瑕疵檢查工具整合到 VS Code 中。