スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | page top↑
Pythonのエラーチェックツール
コンパイル不要のスクリプト言語では、実行時に思わぬエラーに見舞われることはよくあることで、それが事前に発見出来ないから、Pythonは好きではないなどと頓珍漢なことを言う人がいるので、こうしたエラーを事前に発見できるツールを試してみました。Pyconの基調講演でも話題になっていましたが、有名なところでは、PylintPyflakesPyCheckerがあるようです。

まず、Pylint。pip install pylintですぐ入ります。実行もpylintの引数に調べたいPythonのソースファイルを渡すだけ。しょぼいですがGUI版もあります。これはとにかく詳しい。デフォルトだと、カンマの後にスペースがないとか、細かいことをものすごい量で指摘してくれて、最後にお前のコードは10点中何点だ!とまで採点してくれます。ちなみにちょっとしたデータ解析用に書いた400行弱のソースがまさかの1.41点。凹みます。しかも、なんだか詳しすぎて的外れの指摘もちらほら。たとえば、pandasのDataFrameをtupleと勘違いする場面など、ちょっとなんだなーという感じ。
次に試したのは、pyflakes。これはお薦めのデータ解析用Pythonパッケージである、Anacondaに同梱されているので、インストールの必要なし。実行も簡単で、エラーの指摘も簡潔でよい感じです。おそらく作りとしてはPylintの方が凝っているんでしょうが、未定義の変数の指摘など、実行時に避けたいエラーを見つけるだけなら、こちらで十分な模様。
最後に、PycheckerはGoogle内部のPythonコード規約で利用が推奨されていて、気になっていたのですが、pyflakesでいいかと思い始めているところに、pipで適当に打っても入らなかったので、今回は見送りました。しばらく、pyflakesとpylintを利用してみます。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【2013/09/19 10:16】 | Python | トラックバック(0) | コメント(0) | page top↑
Pythonで並列処理
なんでも簡単ならいいという訳ではありませんが、いろいろとやらなければならないことを抱えつつ、コードを書いてデータを解析するなどの仕事をしていると、なにかを簡単にできるのはとっても便利です。PythonでCPUコアを同時に使って並列処理を実行する例をメモしておきます。これでほぼ3つ同時に計算してくれるので、便利と言うほかありません。


from multiprocessing import Pool

def func(data):
#なにかの処理
return val

pool = Pool(processes=3)
results = pool.map(func, [data0, data1, data2])


ただ実は深く考えるといろいろあって、PythonにおけるGlobal Interpreter Lock(GIL)とmulti threadやmulti processに関しては、この記事が、実際のコードと実行結果とともに書いてくれていて非常に分かり易いです。

テーマ:プログラミング - ジャンル:コンピュータ

【2013/09/18 11:22】 | Python | トラックバック(0) | コメント(0) | page top↑
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。