技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Mac にPython環境整えてみる

とは言っても、普通にインストールするだけなので、本来なら書くことがあまりない。
Python 自体、2.5 はデフォで入ってるので、2.6 以上欲しい人向け。
インストーラの挙動が気になったトコでいろいろ書いてみた。

Python インストール(Python 公式)

何のことはなく、Python からインストーラ落として実行するだけ。
気になった点として、デフォルトの python のパスが気になったので、インストール後に、whereis かけてみるとワロタ。

$python --version
Python 2.6.2

$whereis python
/usr/bin/python

$ls -l /usr/bin/python
lrwxr-xr-x  1 root  wheel  60  4 30 17:08 /usr/bin/python -> /usr/bin/python2.5

「あれ!?」と思って、「.profile」開いたら以下の記述が、、、、

# Setting PATH for MacPython 2.6
# The orginal version is saved in .profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
export PATH

なるほど、/usr/bin じゃなくて path に割り込んでたのね、、、。
問題起きるとやだから、/usr/bin のやつも書き換えておく。*1
事前に rm しといてから以下コマンド。

sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6/bin/python /usr/bin/python
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6/bin/python-config /usr/bin/python-config
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6/bin/pythonw /usr/bin/pythonw

適当に周辺ファイルを突っ込む

このへんからez_install.py落としてインストール。

sudo python ez_install.py
sudo easy_install docutils
sudo easy_install sphinx

とりあえずこんな感じ。

PIL 突っ込む(with Python)

普通にコンパイルしていれるとか面倒この上ないので、mac ports 使ってインストール。

$port search pil
----(中略)----
py26-pil @1.1.6 (python, graphics)
    Python Imaging Library

2.6 あるのね。

sudo port install py26-pil

python2.6 も入ってなければ同時にいける。
sudo port install python_select , sudo python_select python26 を設定して終わり。
既に Python 入ってる場合は、シンボリックリンクを追加しますか。

sudo ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL

次は Django かね。

Django

これは非常に簡単ですかね。

svn co http://code.djangoproject.com/svn/django/trunk/
cd trunk
sudo python setup.py install

Python の場合は、追加記述が必要。

sudo vi /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/tzinfo.py

へなっとファイル開いて

try:
    DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
    # この辺追加
    if DEFAULT_ENCODING == 'X-MAC-JAPANESE':
        DEFAULT_ENCODING = 'ascii'

*1:スクリプトの先頭のパスが認識違いすると怖い