Pythonのモジュールとバージョンの問題

Pythonは調べるといろいろ出てきてホントにびっくりです。最近見つけた使えそうなモジュールをちょっと紹介します。

プログラムを最適化して高速にするPsyco

http://psyco.sourceforge.net/
Pythonスクリプト言語では高速な方だと言われていますが、それでもCと比べたら天と地の差があります。その差を少しでも埋めてくれそうなのはこのPsycoです。
詳細はよくわからないですが、とにかくpythonのプログラムに最適化を施して実行速度を速めてくれるということです。Python数値計算(例えば、多重ループを使うような)をするとびっくりするほど時間がかかるんですが、これが少しでも解消されるなら、ぜひとも使いたいですね。

ネットワーク科学研究に使えるNetworkX

http://networkx.lanl.gov/
ネットワーク科学はマニアックな分野ではありますが、おおざっぱに言えばグラフ理論の応用です。そんなネットワーク科学研究で使えそうなのがこのNetworkXです。
例えば、ネットワークでのノード(サイト、頂点)のランク付けのために中心性を求めることがよくあるのですが、そのアルゴリズムがメソッドとして入っています。さらにすばらしいのは、ネットワークの可視化するための描画メソッド。論文やスライドに使えそうな、センスのいい図を出力することができます。ただし、これは別途Matplotlibというモジュールをインストールする必要があります。

ただし、バージョンの問題

Pythonは今、最新でバージョン3.1が出ているようですが、今使っているのはバージョン2.6です。これは、バージョン3以降にするデメリットが多すぎるという点です。というか、今はバージョンを2.5に下げようとも考えています。
バージョンが上がるたびにPythonをインストールし直していたら、今までインストールしてきたモジュールをもう一度インストールしなおさなければいけないという面倒があります。
さらに厄介なのは、バージョンが高いと使えるモジュールが減るということです。例えば、上で挙げたようなモジュールをインストールしたいと考えてダウンロードページに行ってみると、最新でバージョン2.5対応のものだったりします。これが意外と痛くて、僕の使っている2.6では使えません※。
※networkxはできそうですが、psycoは使えないっぽいです。

だから、今、Python2.5を入れようか非常に悩んでいます。当然お引越しの面倒がありますし、ipythonとかもどうなっちゃうんだって感じでもありますし。