PyCharmでpep8とpyflakesのチェックをかける方法

Emacspythonを書くときはflymakeを使って、常にpep8とpyflakesのチェックをかけることができていました。



参考)

http://d.hatena.ne.jp/yuheiomori0718/20111118/1321625239


PyCharmでも同じことがやりたくて方法を探していたら、以下のサイトを見つけましたので設定してみました。

https://confluence.oceanobservatories.org/display/CIDev/PyCharm+-+PEP8+and+Pyflakes+Integration

手順1 pep8とpyflakesのインストール

sudo pip install pep8
sudo pip install pyflakes

手順2 External Toolsの設定


Preferences->External ToolsからAddボタンを押し、外部ツールとしてpep8を指定します。

Nameはpep8など任意
Programは手順1でインストールしたpep8のパス
Parameterは$FilePath$
Working directoryは$ProjectFileDir$

ParameterとWorking directoryはInsert Macroボタンから入力できます。



さらにOutput Filtersボタンからフィルタを設定します。
Addボタンを押して登録します。

Regular expression to match outputに以下を入力します

$FILE_PATH$\:$LINE$\:$COLUMN$\:.*




pyflakesも同様に設定します。

使い方


エディタまたはプロジェクトウィンドウでディレクトリを右クリックして作成したExternal Toolsを選べるようなります。



またHelp -> Find Actionからも実行できます。
Find Actionからだとキーボードだけで実行できるのでこっちが好みです



ただチェック結果は別windowにでます。
pep8のほうはエディタへのリンクになりますが、pyflakesの実行結果はリンクになりません(謎)。



エディタ上でエラー行をハイライトしてくれるわけではないので、その点emacsでやってた設定のほうが便利です。
またチェックを自分で実行しなければいけない点でもemacsのほうが便利です。

pep8とpyflakesのチェックを同時にかける

以下のスクリプトを~/bin/pycheckerなどに置いて、External ToolsのProgram指定すれば、同時に実行できますね
ただやはりpyflakesの実行結果だけがリンクにならないです

#! /bin/bash
/usr/local/bin/pyflakes "$1"
/usr/local/bin/pep8 --ignore=E221,E701,E202 --repeat "$1"
true

チェックを自動で実行する

調べた感じだとできなさそう

作成したExternal Toolsにショートカットを設定する

これは普通にできます