White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

portsから入れたライブラリが使えません!の対策

昨日PRML Hackathonで質問があったので。


まず最初にお断り。私の経験談なので不足してる話が結構あるかもしれません。

またうちの環境は

  • Leopard(10.5.8)
  • 当然標準でpythonが入ってる
  • それ以外にもportsでpython2.5,python2.6を入れてる

です。SnowLeopard(10.6)は他のportsでコケてましたしpython3も触れてません。

使うpythonを切り替える

まず標準のpythonportsで入れたpythonは実行場所が違います。何も知らずにpythonを使ってるとportsで入れた奴のつもりが標準のpythonになっててライブラリが使えなかったりします。


その対策の為にはpython_selectというのを使います。portsつかってるなら

$ sudo port install python_select

で入れられると思います。


次に使えるバージョンを表示してみます。

$ python_select -l
Available versions:
current none python25 python25-apple python26

このような感じにインストールされてるpythonが表示されます。当然個々の環境で表示は変わるでしょう。

$ python_select -s

とか入れると現在使ってるpythonが分かります。python25-appleだと多分Apple標準でしょう。


使いたいpythonを切り替えたければ

$ sudo python_select python26

と入れれば

Selecting version "python26" for python

という感じに変わります。

easy_installについて

実はeasy_installも使うpython毎にそれぞれ別のを実行しないといけません。apple標準ならeasy_install, portsで入れたpython2.5ならeasy_install-2.5, python2.6ならeasy_install-2.6となります。