CentOS5.3にPython2.6でDjango1.1の開発環境を作成する

CentOSではPythonが2.4と少々古いが、システムでPythonに依存している箇所が多くデフォルトのPythonを置き換えるのは好ましくない。
そこで/opt/python2.6にソースからインストールし、Djangoで開発が出来る所までの手順メモ。

設定とゴール

  • CentOS 5.3を使用
  • Django 1.1
  • /opt/python2.6/ にインストール
  • 利用できる範囲でyumとeasy_installを使う
  • 以下、開発ユーザで作業

準備 - yum

sudo yum install zlib zlib-devel sqlite-devel
  • zlibはsetuptoolsのインストールで必要となる。
  • sqlite3-develをインストールしておかないと、Python2.6のコンパイル時にsqlite3が使えるようにならない

Pythonのダウンロードとインストール

$ wget http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz
$ tar xvfz Python-2.6.2.tgz
$ cd Python-2.6.2

後は、./configure / make / make install の手順でインストールする。

$ ./configure --prefix=/opt/python2.6 --with-threads --enable-shared
  • インストールするパスを/opt/python2.6に指定
  • ダイナミックリンクライブラリとする

デフォルトではzlibに対応していないため、Modules/Setupを修正。

$ vi Modules/Setup
# 次の行のコメントを外す
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

後はmakeしてインストールすればOK

$ make
$ sudo make install

共有ライブラリのパスを追加する

$ vi /etc/ld.so.conf.d/opt-python2.6.conf

次の1行を記述

/opt/python2.6/lib

反映

$ sudo /sbin/ldconfig

開発ユーザのpythonコマンドをPython2.6にする

とりあえず、シンボリックリンクを作成しておく

$ sudo ln -s /opt/python2.6/bin/python /usr/bin/python2.6

.bash_profileでパスに追加

PATH=$PATH:$HOME/bin:/opt/python2.6/bin/

.bashrcを修正し、aliasを設定

alias python='python2.6'

動作確認

$ source ~/.bash_profile
$ source ~/.bashrc
$ python2.6 -V
Python 2.6.2
$ python
Python 2.6.2 (r262:71600, Sep  6 2009, 20:30:58) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3

sqlite3でインポートのエラーが発生する場合は、sqlite3-develをインストールしてmakeしなおすこと。

Seuptoolsのインストール

$ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg
$ sudo sh setuptools-0.6c9-py2.6.egg --prefix=/opt/python2.6

zlibエラーの場合は、zlib-develをインストールしてmakeしなおすこと。

Django のインストール

$ sudo easy_install Django

最終確認

$ django-admin.py --version
1.1