この記事について
| 環境 | さくらスタンダードプラン、自前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
参考:こちらのページの最後ら辺
