PyCharmでpep8とpyflakesのチェックをかける方法
Emacsでpythonを書くときはflymakeを使って、常にpep8とpyflakesのチェックをかけることができていました。
参考)
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
チェックを自動で実行する
調べた感じだとできなさそう