テキストファイルのpythonスクリプトでcabochaがエラーになる

この記事について

環境さくらスタンダードプラン、自前python2.7、CaboCha
目的ブラウザから実行するpythonスクリプトでcabochaをimportできるようにする
結果スクリプト先頭の#!行にLD_LIBRARY_PATHを指定して解決

つまずきポイント要約

  • ターミナルでは動くのに、テキストファイルのスクリプトだと共有オブジェクトlibcabocha.so.4が見つからない

事象

テキストファイルのpythonスクリプトでcabochaがエラーになったときの対処法。

ターミナルではpythonでcabochaが動かせるが、テキストファイルに記述したpythonスクリプトからcabochaを実行するとエラーになった。

【環境と前提】
・さくらスタンダードプラン
・/home/username/localに自前のpython2.7がインストール済み
・/home/username/localにcabochaがインストール済み
・テキストファイルのpythonスクリプトでのみ問題発生。

エラー内容(Apacheのエラーログ)

Traceback (most recent call last):
File "python_test2.cgi", line 5, in <module>
import CaboCha
File "/home/username/local/lib/python2.7/site-packages/CaboCha.py", line 26, in <module>
CaboCha = swig_import_helper()
File "/home/username/local/lib/python2.7/site-packages/CaboCha.py", line 22, in swig_import_helper
mod = imp.load_module('_CaboCha', fp, pathname, description)
ImportError: Shared object "libcabocha.so.4" not found, required by "_CaboCha.so"

テキストのpythonスクリプトだと、共有オブジェクトが見つからないよう。パスが通ってないということだろう。

対処

スクリプトの先頭の記述を次のように変更した。

#!/home/username/local/bin/python

↓↓↓

#! /usr/bin/env -S LD_LIBRARY_PATH=/home/workroom/local/lib /home/workroom/local/bin/python

参考:こちらのページの最後ら辺

関連記事

タイトルとURLをコピーしました