Pythonのコードをキレイに書きたい!(VSCodeにflake8 & blackをインストール)

f:id:hate_nattou:20210221223928j:plain:w800

概要

Pythonのコードをキレイに書きたい!

これを簡単に実現するために、コード規約のチェック(flake8)と整形(black)を自動で実施できるようにします。

環境

インストール

flake8

% pip install flake8

black

% pip install black

VSCodeの設定

内容

VSCodeのユーザー設定として追加する。

VSCodeGUI設定画面で右上のマーク( f:id:hate_nattou:20210222002814p:plain:h25 )をクリックすれば、json形式での設定が可能。

  • Linterの設定(flake8)
  • フォーマッターの設定(black)
{
    "python.linting.pylintEnabled": false,
    "python.linting.flake8Enabled": true,
    "python.linting.enabled": true,
    "python.linting.flake8Args": [
        "--max-line-length",
        "88",
        "--ignore=E203,W503,W504"
    ],
    "python.formatting.provider": "black",
    "editor.formatOnSave": true
}

解説

flake8の設定

"python.linting.pylintEnabled": false: pylint(デフォルトのリンター)をオフ

"python.linting.flake8Enabled": true: flake8をオン

"python.linting.enabled": true : Pythonでのリンターをオン

"python.linting.flake8Args": [
"--max-line-length", "88", "--ignore=E203,W503,W504"
]
:
black/flake8での競合を回避するための設定。
flake8のデフォルト設定では一行あたりの文字数を79文字としている。79文字から88文字へ変更することでblackと設定を同じにしている。

blackの設定

"python.formatting.provider": "black": blackで整形する
"editor.formatOnSave": true: セーブしたときに整形する

参考ウェブサイト

【VS Code】BlackとFlake8を使ってきれいなPythonコードを書く!!
* すごくわかりやすい記事。Thanks!

Pipenv can't install black because black is only a pre-release
* blackをインストールできなかったときに参照
(2020年3月22日に実施した際はpre版しかなく、pipコマンドの最後に --pre を付けないとインストールできなかった。2021年2月22日時点では --pre は不要。)