CORESERVERにPython3.3, pipを入れた記録

CORESERVERにはpythonが元々入っているが2.4という古いバージョンなので 最新版の3.3を自分で入れた。*nix慣れしていなくてpipが動くまで色々苦労したので記録しておく。

(※venvやvirtualenvなど複数環境を扱う系統はまだよく分かっていないので通常のインストール)

Python公式からtar.bz2で圧縮されたソースコードをダウンロードして解凍

$ cd ~
$ wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
$ tar -xvjf Python-3.3.0.tar.bz2

Pythonソースコードをコンパイルして、$HOME/local にインストール

$ cd Python-3.3.0
$ ./configure --prefix=$HOME/local
$ make
$ make install

makeでかなり時間がかかる&CPUを使いまくるが我慢して待つ・・ make installが終わったらPythonを実行してみる。 pythonが見つからないと出る場合は$HOME/local/binが環境変数PATHに含まれているか確認。

$ python --version
Python 3.3.0

pipのインストール

pipを入れるためにはdistributeというのが必要。 だから先にditributeを入れてから、pipをいれる

# distributeをインストール
$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
# pipをインストール
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py
$ pip --version
pip 1.2.1 from /virtual/xxxxxx/local/lib/python3.3/site-packages (python 3.3

実際にPythonスクリプトをCGIモードで動かす

.htaccessに以下の設定を追加して、.pyファイルをCGIとして動かせるようにする。

AddHandler cgi-script .py

実行したいpythonファイルのパーミッションを実行可能にして、 以下の様なスクリプトを置いて実行した。

1行目はpythonの実行ファイルへのパス。 ここを/usr/bin/env pythonにしてしまうと、2.4の方が実行されてしまうので ちゃんと/virtual/ユーザー名/local/bin/python と指定すること。

#!/virtual/xxxxx/local/bin/python
# -*- coding: utf8 -*-

import sys
print(sys.version_info)