2014年11月7日金曜日

Mac環境でシステムのPythonをアップグレード(インストール)する

Windowsユーザにはなんてことない、Pythonのアップデートですが、Macユーザには意外と手間だったりします。最近ならMacPortsやHomebrewあたりを使ってPATHを書き換えるのが主流のようですね。

そんな主流に反して、システムのPythonをアップデートする方法をメモしておきます。

まず、Macのシステムってどうなってるの、というとこから。Pythonに関わるPATHは以下の三つがあります。

usr/lib
プリインストール(最近だと2.5, 2.6, 2.7あたりが入ってますね)されている、Pythonのライブラリなんかがあります。

usr/bin
pythonコマンドなどのリンクがあります。ターミナルで「python」コマンドを叩くと、このリンクから各pythonの実行ファイルに飛ぶ仕組みです。


/Library/Frameworks/Python.framework/Versions/2.7(各バージョン。私はとある事情から3.3を入れました)

公式サイトのインストーラを使ってあるバージョンをインストールした時にできる階層。ここにpythonコマンドなどが追加されますが、3系なんかのバージョンでは微妙に名称が違うので注意です。

たとえば、Python3.3の場合は、pythonではなくてpython3になっています。

よって、システムのPythonを変更した場合、次の手順を取ることになります。

①インストーラで好きなバージョンをインストール

②usr/bin配下のリンクファイルをいったん削除。

③usr/bin配下に再度、新しく追加したPythonへのリンクを作成。

④新しいPython置き場にあるライブラリのフォルダを、PATHに追加。

具体的なコマンドはこんな感じです。

sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config

まずはリンクを削除しました。続いて、リンクを作成しなおします。今回はPython3.3を例に使いますが、各バージョンに合わせてリンク元の名称は変更します。

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin/pydoc3 /usr/bin/pydoc
ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 /usr/bin/python
ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin/pythonw3 /usr/bin/pythonw
ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin/python3-config /usr/bin/python-config

以上で、リンクの再配置が完了しました。
さらに、ライブラリのPATHを追加します。vimで.bash_profileあたりに書き加えましょう。ちなみにこのコマンドのみだと、PyQtなどの各種ツールが配置されるsite-packageが含まれないため、必要な方はそちらも追加しましょう。

PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:$PATH"
export PATH

後はPATHを反映して、ターミナルでpythonと打って無事に新しいバージョンが起動すればOKです。

0 件のコメント:

コメントを投稿