pyてよn日記

一寸先は闇が人生

VSCode: Python + black で開発するための設定

Python のコードフォーマッタ black を VSCode で使うための設定.

github.com

black について

black の pros/cons について述べておく.

pros

  • 制限が厳しく議論の余地が少なく,個人的なこだわりを排除できる
  • もちろん PEP8 準拠
  • 要は「制限の厳しい PEP8」.

Python のフォーマッタには autopep8 や yapf があるが,特に black はデフォルト設定で制限が厳しく,自由に設定できない.そのため,面倒な議論を避けて「black 使います」で OK になるから個人的にかなり好き.もちろん PEP8 という Python のコーディングスタイルにも準拠.

cons

  • 個人的なこだわりを排除する

メリットはデメリットの裏返しということで.

例えば,black は文字列のクォーテーションマークを全てダブルクォーテーションに統一する.自分は以前から,「基本シングルクォートで,f-strings など特殊な文字列の場合はダブルクォート」という使い分けをしており,結構気に入ってたが black ではこれが出来ない.ただ,そういう個人的なこだわりの余地を無くすのが black の良いところでもあるので,そこは郷に入っては郷に従えで慣れれば問題なし.

VSCode の設定手順

black をインストールして,パス等の設定を行えば OK.

  1. black のインストール
  2. which black で black のパスを取得
  3. VSCode 側で設定

1. black のインストール

Poetry の人

poetry add --dev black

pip の人

pip install black

2. black のパスを取得

which black

例えば,Docker コンテナ内だとこんな感じ

$ which black
# /usr/local/bin/black

3. VSCode 側で設定

GUI での設定

以下 2 項目を設定.

  • Python > Formatting: Black Path
    • 先ほど調べた black のフルパス
  • Python Formatting Provider
    • black を選択

VSCode の GUI での black の設定
VSCodeGUI での black の設定

JSON での設定

settings.json は以下のようになる.

{
    "python.formatting.blackPath": "/usr/local/bin/black",
    "python.formatting.provider": "black"
}

参考

black の細かな設定を行うときに参考になる記事

blog.hirokiky.org