amazon

17.11.12

MacPortsでインストールした複数バージョンアプリの切替 (pythonの場合)

MacPortsでインストールしたアプリが複数バージョン共存している環境で、
特定のバージョンを指定したい場合以下の方法で行う

まず、インストールされているバージョンの確認(僕の環境の例)
$ python -V
Python 2.7.3
また、ターミナルで「python」というコマンドにひも付け(リンク)されているファイルがどこにあるかは、
$ which python
または、
$ type python
であるが、オプション-aをつければひも付け(リンク)の一覧を表示できる
$ which -a python
/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
/usr/local/bin/python
/usr/bin/python
/opt/local/bin/python

$ type -a python
python is /Library/Frameworks/Python.framework/Versions/2.6/bin/python
python is /Library/Frameworks/Python.framework/Versions/2.7/bin/python
python is /usr/local/bin/python
python is /usr/bin/python
python is /opt/local/bin/python

で、本題のバージョンの切替は以下のコマンド
ここではpython2.6に切り替えた
$ sudo port select --set python python26
$
$ python -V
Python 2.6.6
ちなみに、selectできる一覧は以下のようにして表示出来る
$ port select --list python
Available versions for python:
none
python25-apple
python26 (active)
python26-apple
python27
python32

今回は、64bitのMacではpython2.7用のNumpyが動かないのでダウングレードした次第
ひも付け(リンク)の変更だけならaliasでもできる

追記1
この記事はMacPortsのひも付けの話。
僕の環境では、alias python="/opt/local/bin/python"としてあります。 つまり、pythonを呼び出すと/opt/local/bin/pythonが呼び出され、MacPortsで指定したバージョンが呼び出されるということです。

追記2
ターミナルでpythonと打った時に呼び出されるpythonについてはこちら

0 件のコメント:

コメントを投稿