2010年04月23日

さくらレンタルサーバのpythonでMySQLdbを

さくらインターネットと契約した。
んで、自宅サーバにあるpythonモジュールを移行しようとしたんすね。
さくらインターネットはMySQLも使えるし単純移行だべなと思ってた。
けど(当たり前なのかもしれんが)pythonからMYSQL使うためのMySQLDBが入ってないんすね。
自宅サーバのように勝手にインストールできないし、どうすべかと1日悩んだ結果が以下。
ググった結果何が正解なのかわからず、とりあえずこれで動いたというシロモノ。

(1)以下の内容でシェルを作り、実行する。
コマンドラインだとexportコマンドとか許してくれないんだね。
他にもfor文は使えないけどwhile文が使えるとか、90年代UNIXのシェルしかできないエンジニアにとっては苦痛の環境。
$HOMEに以下シェルを作って目をつぶって実行。
無論何してるかはしらない。

−−−−−−−−−−−−−−−−−−−−−
export VROOT=$HOME/chroot

mkdir -p $VROOT/usr/local/src/
cd $VROOT/usr/local/src/

mkdir -p $VROOT/usr/local/lib/python2.6/site-packages
ln -s $VROOT/usr/local/lib/python2.6 $VROOT/usr/local/lib/python


export PYTHONPATH="$VROOT/usr/local/lib/python:$VROOT/usr/local/lib/python/site-packages"
export PATH="$VROOT/usr/local/bin:$PATH"
export LD_LIBRARY_PATH="$VROOT/usr/local/lib"

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py --prefix=$VROOT/usr/local
python ez_setup.py --prefix=$VROOT/usr/local -U setuptools

wget http://jaist.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar xvzf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py install --prefix=$VROOT/usr/local
−−−−−−−−−−−−−−−−−−


(2)実行すべきpythonのヘダーは以下を使う。

−−−−−−−−−−−−−−−−−−
#!//usr/local/bin/python
#!/usr/bin/env PYTHONPATH=/home/(ユーザ名)/chroot/usr/local/lib/python2.6:/home/(ユーザ名)/chroot/usr/local/lib/python2.6/site-packages')
# -*- coding: utf8 -*-

import site
site.addsitedir('/home/(ユーザ名)/chroot/usr/local/lib/python2.6/site-packages')

import sys
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)

#(ここから下は"import MySQLdb"も含めて普通に書く)
−−−−−−−−−−−−−−−−−−−

やっぱ環境作るの面倒くせぇな。
posted by wani at 21:41 | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。