Skip to main content

Flake8とは?

Flake8とは、Pythonの静的コードチェックツールです。 実装したPythonコードがpycodestyle(PEP8)に則って記述されているかを自動でチェックすることができます。

インストール方法

以下のコマンドを実行し、Flake8をインストールします。

pip install flake8

使い方の例

サンプルコードを利用して、使い方を説明します。

サンプルコード

sample.py
# anti
# NG1: 複数のモジュールを一行でまとめてインポートしている.
# NG2: インポートしたモジュールを使っていない.
import os, sys, glob

# best
# import os
# import sys
# import glob

↑のコードには以下の規則違反があります。

  • E401: 複数のモジュールを一行に書いている。
  • F401: インポートしたモジュールを使っていない。

従来は、これらの規則違反を目視で確認する必要がありましたが、Flake8を利用することでこれらの規則違反を自動で検出することができます。

実行方法

実行方法は以下のとおりです。

% flake8 sample.py
flake8_sample.py:2:1: F401 'os' imported but unused
flake8_sample.py:2:1: F401 'sys' imported but unused
flake8_sample.py:2:1: F401 'glob' imported but unused
flake8_sample.py:2:10: E401 multiple imports on one line

このように、Flake8を利用することで、コーディング規則違反を自動で検出することができます。

よく使うコマンド

普通に実行する場合

flake8 <チェックしたいファイル名 or ファイルが格納されているディレクトリ>

特定の規則を無視する場合

flake8 main.py --ignore E401

# 複数指定する場合は以下(カンマ区切り, スペース不要)
flake8 main.py --ignore E401,F401

特定のファイルやディレクトリを除外する

flake8 ./main_module --exclude tests

1行あたりの最大文字数を指定する

flake8 main.py --max-line-length 120

設定ファイル

実行時にオプションとして指定していた、除外するルール・除外するファイルやディレクトリ・1行あたりの最大文字数などは、設定ファイルに記述しておくこともできます。

設定ファイル名

マシン全体に反映させる場合

~/.config/flake8

プロジェクト単位で設定する場合

.flake8
#もしくは
setup.cfg

ファイルに記述する内容

Flake8を実行する時に指定するオプションと同様に、以下のように記述します。

[flake8]
ignore=E401
exclude=tests
max-line-length=120

VS Codeの拡張機能

VS Code を利用している方は、ms-python.python という拡張機能を使うことで、Flake8によるコードチェック結果を随時エディタ上に表示することができます。 VSCodeの拡張機能でFlake8の結果を表示

参考文献