When it’s ready.

出来るまで出来ない

複数バージョンのPythonを華麗に切り替える

かつて無いほど、pythonのバージョンが混沌としている。
今までは、バージョンが上がっても何となくどっちでもイイカンジでそれなりに苦労なくバージョンが上がってた。そもそも、そんなに頻度が高くバージョンアップしてきたのでバージョン3つ以上有るという状況になりにくかった。

現在、手元の環境に入ってるPythonのバージョンは

  • 2.5.1(OSX付属)
  • 2.5.2(port出入れたやつ)
  • 2.6 (dmgで入れたやつ)
  • 3.0 (dmgで入れたやつ)

と、既に4つ入ってる。こんなの初めてな感じ。2.6移行のマルチプロセス大好きっ子になってしまったので、出来る限り2.6(3.0は動かないモジュール有ってまだ移行し切れてない)で開発して行きたいが、どうしても2.5じゃないと動かないモジュールもあるので未だに、これらの中から一本に絞るという事が出来ない。

今までは、それぞれのバージョン番号を付けて起動してた。

% python2.5

とか

% python

これで2.6にalias切ってる。
それだけだったらそんなに問題じゃないんだけど、何がめんどくさいってモジュールも各バージョン毎に入れなきゃ行けない。

% easy_install-2.5 hoge
<
とか
>||
% easy_install fuga

とか。これが意外とめんどくさくて、入れ忘れる事もしばしば。「あれ?入れたはずなのに(勘違い)」とか思ったら違うVerに入れたりする。

前置き長くなった

python_selectを使おう!

いつの間に入ってたのか知らないけど、"/opt/local/bin/python_select"っていうコマンドが入ってた。これが非常に便利。portで簡単に入るポイ(いつの間に入れたんだろ?)

% python_select
usage: python_select [-n] [-f] [-r] [-h] [-v] version

-n        Show commands to do selection but do not execute them.
-f        Ensure the links are correct for the specified version
          even if it maches the current default version.
-h        Display this help info.
-r        Skip test for necessary rights.
-v        Display version of /opt/local/bin/python_select.
-l        List available options for version.
-i path   Install mode to perform an initial selection in path.

% python_select -l
Available versions:
none python24 python25 python25-apple

てな感じで、利用可能なpythonのバージョンが出たり、切り替えたり出来る。(今気づいた2.6と3.0が出てないな・・)
コレ使うとeasy_installも切り替わったのでコレ使えばOS付属の2.5とportの2.5の切り替えとかが一発で出来て便利

バージョンの切り替えに毎回心痛めてる人が居たらお試しあれ

追記:python-apple以外はportで入れたのが対象になる見たい。dmgで入れたのは駄目ぽいな。