21
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows環境でのMeCab(Python)のインストール

Last updated at Posted at 2017-09-28

はじめに

自然言語処理を学ぼうと思い、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を編集する

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)異なるが、デフォルトから変更していない限りは以下でよい。

setup.py(修正後)
#!/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

21
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?