色々な事情が重なって、Windows環境にMeCabを入れるニーズがあった。
なんとか出来たが、ちょっとググればわかるようにWindows以外のOSが推奨される。
複数の参考記事の組み合わせ+αで解決できたので、作業ログを残しておく。
#実行環境
- Windows 10
- python3.5
- Visual Studio 2015 Update3
#mecab-0.996.exeをダウンロード&インストール
#mecab-0.996.tar.gzの改変作業
- http://taku910.github.io/mecab/#download からダウンロード
- 64ビットWindows用にMeCabをビルドする (Visual Studio 2015/2010を利用)を参考に
- srcディレクトリにいく
##Makefile.msvc.inの改変
- Makefile.msvc.inをコピー⇒Makefile.msvcに名前を変える
- 5行目を
LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X64 ADVAPI32.LIB
- 7-8行目を
-DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 \
-DVERSION="\"0.996\"" -DPACKAGE="\"mecab\"" \
##feature_index.cppの改変
- 356行目
case 't': os_ << (unsigned int)path->rnode->char_type; break;
##writer.cppの改変
- 260行目
case 'L': *os << (unsigned int)lattice->size(); break;
##改変したもののコンパイル
- VS2015 Native Tools コマンドプロンプト を起動
- \mecab-0.996\src ディレクトリに移動
make.bat
- \mecab-0.996\src内の全ての〇〇.exeとlibmecab.dllを C:\Program Files (x86)\MeCab\bin に上書き
- \mecab-0.996\src内のすべての〇〇.libを C:\Program Files (x86)\MeCab\sdk に上書き
- C:\Program Files (x86)\MeCab\bin をPATHに追加
#Pythonモジュールに関する作業
- http://taku910.github.io/mecab/#download
- mecab-python-0.996.tar.gz
- 7-zipで展開
- Windowsにmecab-pythonを導入 を参考に
##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.hに追記
- mecab.h は C:\Program Files (x86)\MeCab\sdk にある
/**
* 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;
##コンパイル
- Anaconda Promptを起動
- C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC に移動
vcvarsall.bat
- コマンドプロンプトにて mecab-python-0.996ディレクトリに移動
python setup.py build
python setup.py install
これでようやくimport MeCab が上手くいきました。