XREAで好きなバージョンのPythonを使う方法2

やんごとなき事情によりxrea内でWEBサーバを移動しました。

というわけで、このブログ(web.pyによる自作ブログ)を移したわけですが、今までのようにバイナリ化して動かすにはサーバと似た環境が手元にないといけません。が、移動した先のサーバでは環境がだめ。

ということで、python2.5をxreaにインストールしました。virtual-pythonもいいんですが、xreaのサーバはpython2.4なので。ちょっと工夫すれば入るし、快適ですね。以下作業ログ。

Pythonをインストール

まずはPythonのソースをダウンロードしてコンパイル。 ~/root/usr/local にいれます。

1mkdir -p ~/root/usr/local/src
2cd ~/root/usr/local/src
3wget http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz
4tar zxvf Python-2.5.4.tgz
5cd Python-2.5.4
6./configure --prefix=~/root/usr/local
7make
8make install

サクっと入ります。で、次にeasy_installを入れるわけですが、はいりません。OpenSSLとの絡みで hashlib.md5 が使えないから。 easy_install を入れるときに md5 を検証するのに使ってるんですよね。

hashlibをインストール

なんで、自前でhashlibを単体でいれます。

1cd ~/root/usr/local/src
2wget http://code.krypto.org/python/hashlib/hashlib-20081119.tar.gz
3tar zxvf hashlib-20081119.tar.gz
4cd hashlib-20081119
5vi setup.py

はい、 setup.py を編集しましょう。普通にbuildするとこれでも md5 が入りません。

 1105   if (ssl_inc_dir and
 2106     ssl_lib is not None and
 3107     openssl_ver >= 0x00907000):
 4108
 5109     print 'Using OpenSSL version 0x%08x from' % openssl_ver
 6110     print ' Headers:\t', ssl_inc_dir
 7111     print ' Library:\t', ssl_lib
 8112
 9113     # The _hashlib module wraps optimized implementations
10114     # of hash functions from the OpenSSL library.
11115     exts.append( Extension('_hashlib', ['_hashopenssl.c'],
12116                include_dirs = [ ssl_inc_dir ],
13117                library_dirs = [ os.path.dirname(ssl_lib) ],
14118                libraries = osNameLibsMap[os.name]) )
15119   exts.append( Extension('_sha', ['shamodule.c']) )         
16120   exts.append( Extension('_md5',                  
17121           sources = ['md5module.c', 'md5.c'],
18122           depends = ['md5.h']) )

119-120あたり、強制的に _md5 を入れるようにします。あとは

1~/root/usr/local/bin/python setup.py build
2~/root/usr/local/bin/python setup.py install

hashlib が入ります。

easy_installをインストール

これで md5 が使えるようになったので

1cd ~/root/usr/local/src
2wget http://peak.telecommunity.com/dist/ez_setup.py
3~/root/usr/local/bin/python ez_setup.py

これで無事 easy_install が入ります。あとは

1~/root/usr/local/bin/easy_install -U -Z MySQL_Python

てな感じで必要なモジュールを入れていきましょう。

というわけで

わりと普通にxreaでPythonが使えています。

comments powered by Disqus