使用 black formatter 在 VSCode

Kiwi lee
4 min readDec 31, 2020

--

前言

目的

使用 black 做 Python 程式碼的風格統一調整,使其更符合 PEP8 的 coding style。

簡述

使用 black 只會調整 code 的樣字,像是修飾,而不會特別修改程式上的名字或是邏輯,可以放心使用。

使用 black 在 terminal

安裝

假設你在 vscode 的該 project 下,有設定 virtual environment ,記得在對應的環境安裝

pip install black

修飾

只修飾一個檔案

black <file-you-want-to-format>.py

修飾整個資料夾的檔案

black <folder-you-want-to-format>

當無法 format 成功時,印出相關的資訊

black -v <file-you-want-to-format>.py

其他參數

  • -l --line-length INTEGER : 每行允許的字數(預設 88 個)
  • --check : 不會改寫檔案,只會回傳修飾的狀況。0 代表沒用修改需求,1 則代表有修改需求。123 則是有錯誤發生
  • -t --target-version [py35|py36...|py39] : 依照 target version 指示,修飾檔案

Others: https://github.com/psf/black#command-line-options

使用 black 在 vscode 上

  1. 安裝 python extention
  2. 修改 vscode 設定
  3. (optional) 調整設定

安裝 Python extention

  1. 進入 vscode 的視窗介面
  2. 按下 ctrl+shift+K ,進入 extention 的介面
  3. 搜尋 python 並安裝

修改 vscode 設定

  1. 確認目前在 VSCode 的 python enviroment

2. 進入 vscode 的設定 search Format on save,開啟「檔案儲存會自動 format」

3. 進入 vscode 的設定 search Python Formatting Provider,開啟當使用 python 時用「black 做 format」

問題排除

若是以上步驟結束後,無法成功 format,而且底下的 bar 顯示 Extension 'Python Language Basics' cannot format <file-name>.py' ,則依下方修改 vscode 的 setting.json ,修改對應的參數

"editor.defaultFormatter": null,
"editor.formatOnSave": true,
"python.formatting.provider": "black"

補充

除了在 local 端做,更可以在 version control 時運行

--

--

Kiwi lee

Hi, I'm kiwi, Platform Engineer (SRE, DevOps). Python Engineer. Love art, books, longboard. https://kiwilee-blog.netlify.app/