はじめに
自然言語処理を学ぼうと思い、PythonにMeCabをインストールしようと考える人は多くいると思う。
MacやLinux環境では比較的簡単に(HomeBrewやapt-getを使用して)インストールすることが可能だが、Windows環境では一筋縄ではいかない。(現に2,3日ハマった)
多くの先人達がブログの記事にしているが、個人によって環境は異なるので、私がインストールに成功した方法を記事にしたいと思う。
インストール(に試して成功した)環境
OS:Windows10, Windows7
Pythonの環境:Anaconda3系
先にダウンロードしておくべきもの
https://www.visualstudio.com/vs/older-downloads/
VS2015 Community
(私の手元ではVS2017だと失敗した)
http://taku910.github.io/mecab/
mecab-0.996.exe
mecab-python-0.996.zip
http://neu101.seesaa.net/article/272153413.html
mecab-python-0.993.win-build.zip
導入手順
1. まずはじめにMeCabをインストールする
mecab-0.996.exeを起動し、インストールする
※インストールする際に文字コードをutf-8にしておく
2. ダウンロードしておいたmecab-python-0.996.zipを解凍する
解凍して作成されたmecab-python-0.996フォルダ内のsetup.pyを編集する
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "mecab-python",
version = cmd1("mecab-config --version"),
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
include_dirs=cmd2("mecab-config --inc-dir"),
library_dirs=cmd2("mecab-config --libs-only-L"),
libraries=cmd2("mecab-config --libs-only-l"))
])
MeCabのインストール先によって一部(include_dirs, library_dirs)異なるが、デフォルトから変更していない限りは以下でよい。
#!/usr/bin/env python
from distutils.core import setup, Extension
setup(name = "mecab-python",
version = '0.996',
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
include_dirs=[r'C:\Program Files (x86)\MeCab\sdk'],
library_dirs=[r'C:\Program Files (x86)\MeCab\sdk'],
libraries=['libmecab'])
])
3. VS2015 Communityをインストールする
インストールする際に必ずVC++にチェックを入れる
4. Pythonがビルドされた環境を確認する
from distutils.msvc9compiler import *
get_build_version()
14.0と出力されればOK
5. レジストリを書き換える
スタート/検索/"regedit"を開き、
値を以下の場所に書き込む
キー名: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\(Python の MSVC のバージョン)\Setup\VC
値名:ProductDir
値:(現在使っている Visual Studio の VC フォルダへのパス)
Ex.Python3.5を使っていて、Vs Community2015を入れたので次のようになる
キー名: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\Setup\VC
値名:ProductDir
値:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
6. mecab.hを編集する
C:\Program Files(x86)\MeCab\sdk\mecab.hの775行目付近
管理者権限で実行する必要あり
/**
* Lattice class
*/
class MECAB_DLL_CLASS_EXTERN Lattice {
public:
virtual void set_result(const char *str) = 0; //この1行を追加
/**
* Clear all internal lattice data.
*/
virtual void clear() = 0;
7. mecab-python-0.996に戻りbuildする
mecab-python-0.996フォルダ内で以下を実行すると
python setup.py build
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.exe"' failed with exit status 1120
のようなエラーが出力される
8. mecab-python-0.933.win-build.zipを解凍し、ファイルを移動する
ダウンロードしておいたファイルを解凍し、mecab-python-0.933.win-buildフォルダ内の
libmecab.dllとlibmecab.lib
をmecab-python-0.966に移動する
9. mecab-python-0.966フォルダ内でコマンドを実行する
python setup.py build
python setup.py install
これで、mecab-python-0.966フォルダ内でMeCabをimport出来るようになった
10. MeCabを別ディレクトリからimportする方法
実行環境によってファイルのコピーする先が異なる
anaconda3を使用している場合
\Anaconda3\Lib\site-package
にmecab-python-0.996にあるlibmecab.dllにコピーする。
とても参考になったURL
http://baito1024.blog.jp/archives/10201616.html
http://y-mattu.hatenablog.com/entry/2016/01/06/030929