flake8 は、次の Lint1 を含んだラッパーツールです。
- PyFlakes
- pycodestyle
- Ned Batchelder’s McCabe script
これを Visual Studio Code に導入することで、PythonのコードがPEP8に準拠したスタイルになっているか検証することができるため開発環境に組み込みました。
導入環境
- Windows 10 64bit
- Visual Studio Code (VS Code)
- Python3.8 (※ pip へのパスが通っていることを前提とします。)
- Windows コマンドプロンプト (cmd.exe) をある程度使えることを前提とします
導入の流れ
- flake8 のインストール
- VS Code 既定の Lint である pylint を無効化する
- VS Code に flake8 を設定する
- flake8 の設定値を変更する
1. flake8 のインストール
コマンドプロンプトで次のコマンドを実行します
pip install flake8
インストールが完了したら、次のコマンドでインストールされたことを確認できます
C:\>pip show flake8
Name: flake8
Version: 3.8.4
Summary: the modular source code checker: pep8 pyflakes and co
Home-page: https://gitlab.com/pycqa/flake8
Author: Tarek Ziade
Author-email: tarek@ziade.org
License: MIT
Location: c:\python\lib\site-packages
Requires: pycodestyle, mccabe, pyflakes
Required-by:
2. VS Code 既定の Lint である pylint を無効化する
VS Code の設定画面からpython.linting.pylintEnabled
を検索し、Python > Linting: PyLint Enabled
項目を無効にします。
尚、VS Code の設定は、ユーザー設定、ワークスペース設定、フォルダー設定と分けることが出来ますが、筆者はユーザー設定を選択しています。
3. VS Code に flake8 を設定する
VS Code の設定画面からpython.linting.flake8Enabled
を検索し、Python > Linting: Flake8 Enabled
項目を有効にします。
4. flake8 の設定値を変更する
PEP8 スタイルに準拠すると一行の文字数制限が79文字までとなります。
これを現在の開発環境に合わせて、文字数制限を150文字までに設定します。
VS Code の設定画面からpython.linting.flake8Args
を検索し、Python > Linting: Flake8 Args
項目に設定を追加します。
この設定により、VS Code の設定ファイル (settings.json) に次のコードが追加されます。
{
"python.linting.flake8Args": [
"--max-line-length",
"150"
]
}
5. 完了
以上で、Python ソースファイル保存時にコードがPEP8に準拠しているか検証されます。
参考にしたサイト
-
Lint (Linter ともいう) とはソースコードの内容を分析し問題点を指摘してくれる静的解析ツールです。 ↩