Python ChaSen を CGI から使う。

導入した Python ChaSen を使って CGI を書いてみたのですが

Shared object "libchasen.so.2" not found, required by "chasen.so"

こんなメッセージが出て、うまく動きません。


シェアードライブラリが見つからないといっているので
LD_LIBRARY_PATH に libchasen.so.2 が含まれる
/home/ユーザ名/local/lib
を追加すればよいのは分かるのですが
root 権限がないので Apache の設定を変更することができません。


そんな時はシェルスクリプトでラップしてみましょう。


目的の Python スクリプトを起動するシェルスクリプトを書いて
その中で LD_LIBRARY_PATH の設定を行います。
このやり方で他の環境変数を設定することも可能です。

#!/bin/sh
LD_LIBRARY_PATH=/home/ユーザ名/local/lib;export LD_LIBRARY_PATH
PYTHONPATH=/home/ユーザ名/local/lib/python2.5
/home/ユーザ名/www/hoge.py


hoge.py では cgi.FieldStorage() を使って引数もちゃんと受け取れます。


ではでは