pythonはインタプリタ言語の特性を生かして簡単にコード作成、実行できるのでとても重宝しています。が、エラーを含んだコードを記述してもその場所まで処理が進まないとわからないという欠点もあります。(シェルスクリプト含め構文チェック機能のない、というかコンパイルする必要のないプログラムは大体そういう特性がありますよね。いわずもがな)
たとえば、計算解析のプログラムを組んだとき、バグ修正をしたつもりが構文チェックエラーで停止するという事態に。一回実行するだけでも数時間かかるので、「計算終わってるかな」と翌日にチェックしたらエラーで止まっている、なんてこともある。
これが配布プログラムであった場合は事態はなおさら深刻だ。
そこで、今更感もありますが、構文チェックのプログラムを使ってみました。有名なのはpylinkとpycheckerですが、pylinkは機能が充実している(完全に印象。プログラムが巨大だったので。)半面、依存ライブラリが多くてインストールが面倒でした。
そこで、pycheckerを使うことに。ソースを落としてきていつものおまじない。
ダウンロード&解凍して、管理者権限でpythonで実行します。これだけ。
cd /usr/local/src wget http://downloads.sourceforge.net/project/pychecker/pychecker/0.8.19/pychecker-0.8.19.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpychecker%2Ffiles%2F&ts=1343654198&use_mirror=jaist tar xzvf pychecker-0.8.19.tar.gz cd ./pychecker-0.8.19 python setup.py install
使い方。
pychecker hoge.py
これを自分で作った解析プログラムとして実行してみると、以下のテキストが表示されました。あれ?失敗したかな…、と思っていたら、これが構文ミスが無いという意味だそう。途中確認無しでミスなくコーディングできるpythonすごい!と思ってしまった。大体、プログラム組んで一発でコンパイル通ることはかなりまれなので。
Warnings... None
ちなみに、
python -m py_compile hoge.py
と、pycファイルを作成することでも構文チェックされるといううわさもありますが、未確認。情報求む。