LoginSignup
22
9

More than 3 years have passed since last update.

flake8の使い方とオプション

Posted at

falke8とは?

Pythonのコードチェッカーツール(ライブラリ)です。

flake8を使うことで、Pythonコードの問題点を簡単に、そして効率的に見つけることができます。

例えば、pep8に準拠していないcodeやunused codeなどがあった場合、flake8によるチェックを行うことで、「どのファイルの」「何行目が」「どのような違反を犯しているか」を示してくれます。

project rootで実行すれば、そのprojectにpep違反を犯しているファイルがあるかどうかを一目でチェックすることができます。

なお、flake8自体は下記ライブラリのラッパーだそうです。

  • PyFlakes(pyflakes : コードのエラーチェック)
  • pycodestyle(pycodestyle : PEP8に準拠しているかチェック)
  • Ned Batchelder’s McCabe script(mccabe : 循環的複雑度のチェック) 

flake8の導入

flake8の導入は簡単です。
pipでinstallすればOKです。

以下のコマンドを実行しましょう。

pip install flake8

flake8によるチェック実行

flake8の実行はコマンドを実行するだけです。
以下のコマンドを実行すると、実行したディレクトリの配下を再帰的にチェックしてくれます。

$ flake8

なお、ファイルパスを指定することで、特定のファイルのみをチェックすることもできます。

$ flake8 <対象ファイルへのパス>

--ignore

このオプションをつけることで、特定のerrorを無視します。

$ flake8 --ignore E402

複数のerrorを指定するときは、','で渡しましょう。

$ flake8 main.py --ignore E402 E403

--exclude

このオプションをつけることで、特定のフォルダをチェック対象外にします。

$ flake8 --exclude tests

--per-file-ignores

このオプションをつけることで、特定のファイルのみ特定のerrorを無視します。

$ flake8 --per-file-ignores sample.py:E402

--max-line-length

このオプションをつけることで、1行あたりの最大文字数を指定する

$ flake8 --max-line-length 100

pep8では1行の長さを79文字以下にすることを推奨しています。
flake8ではこのチェックも行なっているのですが、可読性のためにこの制約が邪魔になる時もあるでしょう。
そのような時は、このオプションをつけることで1行あたりの最大文字数を変更できます。

--statistics

このオプションをつけることで、最後に統計情報を出すことができます。

$ flake8 --statistics

flake8の警告一覧

公式を参照

まとめ

flake8を使うことで、python codeの質を担保できます。
導入、使用が簡単なので、使いやすいのも嬉しいですね。

22
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
9