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

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

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

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

Pythonをインストール

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

mkdir -p ~/root/usr/local/src
cd ~/root/usr/local/src
wget http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz
tar zxvf Python-2.5.4.tgz
cd Python-2.5.4
./configure --prefix=~/root/usr/local
make
make install

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

hashlibをインストール

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

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

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

105   if (ssl_inc_dir and
106     ssl_lib is not None and
107     openssl_ver >= 0x00907000):
108
109     print 'Using OpenSSL version 0x%08x from' % openssl_ver
110     print ' Headers:\t', ssl_inc_dir
111     print ' Library:\t', ssl_lib
112
113     # The _hashlib module wraps optimized implementations
114     # of hash functions from the OpenSSL library.
115     exts.append( Extension('_hashlib', ['_hashopenssl.c'],
116                include_dirs = [ ssl_inc_dir ],
117                library_dirs = [ os.path.dirname(ssl_lib) ],
118                libraries = osNameLibsMap[os.name]) )
119   exts.append( Extension('_sha', ['shamodule.c']) )         
120   exts.append( Extension('_md5',                  
121           sources = ['md5module.c', 'md5.c'],
122           depends = ['md5.h']) )

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

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

hashlib が入ります。

easy_installをインストール

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

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

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

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

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

というわけで

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

comments powered by Disqus