MeCabを「Windows10;Python3.5(64bit)」に入れる

  • 7
    いいね
  • 1
    コメント

色々な事情が重なって、Windows環境にMeCabを入れるニーズがあった。
なんとか出来たが、ちょっとググればわかるようにWindows以外のOSが推奨される。
複数の参考記事の組み合わせ+αで解決できたので、作業ログを残しておく。

実行環境

  • Windows 10
  • python3.5
  • Visual Studio 2015 Update3

mecab-0.996.exeをダウンロード&インストール

mecab-0.996.tar.gzの改変作業

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モジュールに関する作業

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 が上手くいきました。