さくらのレンタルサーバーにMECABを導入してみる
さて、今回は、VPSやらで有名なさくらさんのレンタルサーバーでMecabを導入してみたので、それを備忘録的にまとめてみようと思います。だんだんこのホームページがMecabファンサイトになりつつある気がしますが、気にしません。
レンタルサーバー : さくらのレンタルサーバ スタンダード
MeCab : 0.996
Python : 3.4
ちなみに、さくらのレンタルサーバには、デフォルトでMeCabがインストールされているため、コマンドで試すだけなら何もしなくてもできます。しかし、これは、残念ながら各言語にバインドされていない…しかも、文字コードがUTF8じゃないので、色々とめんどくさかったりします。
今回は、それを踏まえて、MeCabのバージョンを上げつつ文字コードをutf-8に設定し、Pythonにバインドしたいと思います。
1.必要なパスを通す
初めに、コンパイルに必要なやつらのパスを通しておきましょう。これには、ホームディレクトリの隠しファイルである.bash_profileを編集します。
1 |
$ vi ~/bash_profile |
これに、以下の記述を追加して下さい。
1 2 3 4 5 |
export CPATH=/usr/include:/usr/local/include export C_INCLUDE_PATH=/usr/include:/usr/local/include export CPLUS_INCLUDE_PATH=/usr/include:/usr/local/include export LIBRARY_PATH=$HOME/lib:$HOME/local/lib:/usr/local/lib export LD_LIBRARY_PATH=$HOME/lib:$HOME/local/lib:/usr/local/lib |
2.MeCabの入手かつインストール
さて、さっそく本体をDLしましょう。そして、解凍、インストールまでやってしまいます。今回は、charsetをutf8だけにしぼってやっていきます。
1 2 3 4 5 6 7 8 |
$ mkdir ~/work $ cd ~/work $ wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz $ tar xvfz ./mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only $ make $ make install |
これで完了です。
3.辞書の入手かつインストール
次に、辞書のインストールです。参考にしたブログさんを見るに、ここだけやれば、文字コード問題は解消されるみたいです。確認してないので、断言はできませんが…。
辞書のダウンロード、解凍、展開インストールは以下のコマンドでどうぞ。
1 2 3 4 5 6 7 |
$ cd ~/work $ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz $ tar xvfz ./mecab-ipadic-2.7.0-20070801.tar.gz $ cd ./mecab-ipadic-2.7.0-20070801 $ ./configure --with-charset=utf8 --with-dicdir=$HOME/local/lib/mecab/dic/ipadic $ make $ make install |
ここまでで、コマンドによるMeCabは実行できるはずです。以下のコマンドで、インストールしたMeCabのバージョンが表示されるかを確認してみてください。
1 |
$ mecab --version |
4. PythonにMeCabを導入(2016/11/19 追記)
時が立って簡単に導入できるようになりました。以下のコマンドでインストールしてください。
1 |
$ sudo pip3 install mecab-python3 |
たったこれだけでこれ以降に書いてあることはすべてやらなくて大丈夫です。
旧4.Pythonバインドの準備
さて、問題のPythonへの対応です。
まずは、例のごとくダウンロードです。
1 2 3 4 5 |
$ cd ~/work $ wget https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz --no-check-certificate $ tar xvfz ./mecab-python-0.996.tar.gz $ cd mecab-python-0.996 $ python setup.py install |
これでできたら、よかったね。
で終了ですが、そんなに甘くはありませんでした。
旧5.事前準備とインストール
ここで、setup.pyの編集を行います。このとき、mecabのバージョンと、インストールしたmecabのconfigコマンドの位置を確認しておくと便利です。
Python2.xにインストールしたい人は以下のように編集してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
setup(name = "mecab-python", #version = cmd1("mecab-config --version"), version = 0.996, py_modules=["MeCab"], ext_modules = [ Extension("_MeCab", ["MeCab_wrap.cxx",], #include_dirs=cmd2("mecab-config --inc-dir"), include_dirs=cmd2("~/work/mecab/mecab-0.996/mecab-config --inc-dir"), #library_dirs=cmd2("mecab-config --libs-only-L"), library_dirs=cmd2("~/work/mecab/mecab-0.996/mecab-config --libs-only-L"), #libraries=cmd2("mecab-config --libs-only-l")) libraries=cmd2("~/work/mecab/mecab-0.996/mecab-config --libs-only-l")) ]) |
コマンドのパスを記述している個所は、自身の環境に合わせて編集してください。ちなみに、なかなか修正方法が気持ち悪いですが、何やってるかわかる人は適宜書き換えちゃってください。
Python3.x系にインストールしたい人は以下の(ry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def cmd2(str): #return string.split (cmd1(str)) return cmd1(str).split() setup(name = "mecab-python", #version = cmd1("mecab-config --version"), version = 0.996, py_modules=["MeCab"], ext_modules = [ Extension("_MeCab", ["MeCab_wrap.cxx",], #include_dirs=cmd2("mecab-config --inc-dir"), include_dirs=cmd2("~/work/mecab/mecab-0.996/mecab-config --inc-dir"), #library_dirs=cmd2("mecab-config --libs-only-L"), library_dirs=cmd2("~/work/mecab/mecab-0.996/mecab-config --libs-only-L"), #libraries=cmd2("mecab-config --libs-only-l")) libraries=cmd2("~/work/mecab/mecab-0.996/mecab-config --libs-only-l")) ]) |
それぞれ、コメントアウトされている部分を書き換えてください。ここに書いてない部分は、そのままで。
で。これを実行することにより、インストールします。
1 |
$ python setup.py install |
これで終わればいいのですが、たぶん行きません(泣)
旧6.小技でごまかす
このとき、今回の環境では、パーミッションがうんぬんというエラーが出ました。これは、そのままの意味で、権限のない個所にビルドしたMeCab.pyをコピーしようとしているために発生しているようです。
というわけで、正しく終了しません。残念でした。
しかし、処理が終了しなくても、生成されたMeCab.pyは、~/work/mecab/mecab-python-0.996/build/lib.freebsd-9.1-RELEASE-p24-amd64-x.x(x.xの箇所は、Pythonのバージョン)というところにあります。
ためしに、このディレクトリ内でPyrhonコマンドおよびMeCabのimportを行うと、正しく動作しているのが確認できます。ので、これを移動させればおkでしょう。
今回は、めんどくさそうだったので、ホームディレクトリにmylibというディレクトリを作り、そこに突っ込んで、Pythonプログラムを実行するたびに、パスを指定する方法で対応します。
これにて終了。お疲れさまでした。
(なにかいい方法があるなら教えてください。)pipという超簡単な方法でできるようになりまいた。
「さくらのレンタルサーバにMeCab…を入れてPythonから使う」
「MeCabのインストールと環境設定」
「MeCab-pythonのインストール」
「Mecabのインストールメモ」
「CentOSにmecab-pythonをインストールする」