IntelliJやPyCharmでPythonファイルの変更を検知してflake8で文法チェックをする

作成
2020-04-29

概要

Pythonのコードをレビューする際に、フォーマットについての指摘は何箇所にも渡ってしまい心が折れそうになったので調べてみました。CIも方法としてありますが、レビューの対象はあくまで課題で書かれたシンプルなPythonスクリプト。

オーバースペックなのでIntelliJやPyCharmなどのJetBrains製品でPythonの文法チェックをする方法を模索してみました。

前提

flake8をインストールしていること

flake8はPythonのコードスタイルであるPEP8に準拠しているかをチェックしたり、コードの論理的なエラーをチェックしたり、循環的複雑度をチェックする万能チェックツールです。

これをインストールします。

$ pip install flake8

インストールできているかの確認。

$ flake8 --version

File Watchersをインストールしていること

IntelliJやPyCharmでは「File Watchers」というファイルの変更を検知するプラグインがあります。

こちらをインストールして再起動します。

IntelliJやPyCharmでの設定方法

[IDE名]→[Preferences]で設定を開き、左のペインの[Tools]→[File Watchers]と辿り、[+]ボタンをクリックします。

ToolsからFile Watchersの遷移

[Custom]をクリックします。

[Custom]の選択肢

「New Watcher」のダイアログで以下を入力します。

Wacherの設定内容

項目名 解説 設定値
Name Watcherの名前。 flake8
File Type 対象するファイルの種類。 「Python」を選択。
Scope 監視対象にするファイルのことです。 「All Files」を選択。
Program ターミナルでwhich flake8でパスを調べて入力しましょう。 flake8のパス
Arguments コマンド引数。 $FilePath$
Output path to refesh ファイル出力する際のパス。今回はIDE内のパネルに閉じたいので「なし」を選択します。 なし
Advanced Options 詳細オプションですが、とくに設定しません なし

[OK]ボタンをクリックしダイアログを閉じ、さらに[OK]ボタンを入力してPreferencesを閉じます。

動作の確認方法

Pythonファイルを開き、わざと間違えた内容を入れると、「Output」パネルが自動的に開き、エラーメッセージを表示します。

ファイルの監視を止めるには?

[Preference]→[Tools]→[File Watchers]を開き、監視を停止したいWacherをクリックして選択し、「Enabled」のチェックをクリックしてチェックマークを消し、[OK]ボタンを押します。