久しぶりに自然言語処理の環境を一から作るとき、形態素解析器MeCabのインストールでコケることがよくあります。
インストール失敗の原因は主に二つあるので、それぞれ対処法をご紹介します。
環境はCentOSでpython 3.6.4ですが、UbuntuやMacでも通用します。
(Windowsはまた少し毛色が違うので助けにならないかもしれません。)
Contents
MeCab本体がインストールされていない
まずはMeCabそのものがインストールされていないことが原因になることが多いです。
以下のコマンドを試して、MeCabがインストールされているかを試してください。
$ mecab
これでエラーが出る場合は、MeCabがインストールされていません。
次のコマンドでインストールしてください。
CentOS
$ sudo yum install mecab $ sudo yum install mecab-ipadic $ sudo yum install mecab-debel
Ubuntu
$ sudo apt install mecab $ sudo apt install libmecab-dev $ sudo apt install mecab-ipadic-utf8
環境によってはaptではなくapt-getを使用。
MacOS
$ brew install mecab $ brew install mecab-ipadic
以上を試したのち、mecabコマンドでエラーが出ないことを確認してください。
インストールができたら、再度以下のコマンドでmecab-python3をインストールします。
$ pip install mecab-python3
swigがインストールされていない
上記を試したときに、まだエラーが出る場合はswigがインストールされていない可能性があります。
以下のようなエラーが出ていないか確認してください。
$ pip install mecab-python3 Collecting mecab-python3 Using cached https://files.pythonhosted.org/packages/ac/48/295efe525df40cbc2173748eb869290e81a57e835bc41f6d3834fc5dad5f/mecab-python3-0.996.1.tar.gz Installing collected packages: mecab-python3 Running setup.py install for mecab-python3 ... error Complete output from command /home/user/.pyenv/versions/3.6.4/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-irhrvh0k/mecab-python3/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-9el963f3-record/install-record.txt --single-version-externally-managed --compile: /home/user/.pyenv/versions/3.6.4/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type' warnings.warn(msg) running install running build running build_py running build_ext building '_MeCab' extension swigging MeCab.i to MeCab_wrap.cpp swig -python -shadow -c++ -I/usr/include -o MeCab_wrap.cpp MeCab.i unable to execute 'swig': No such file or directory error: command 'swig' failed with exit status 1 ---------------------------------------- Command "/home/user/.pyenv/versions/3.6.4/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-irhrvh0k/mecab-python3/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-9el963f3-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-irhrvh0k/mecab-python3/ You are using pip version 9.0.1, however version 19.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
このエラーが出る場合は、swigをインストールしてやることで対処できます。
CentOS
$ sudo yum install swig
Ubuntu
$ sudo apt install swig
環境によってはaptではなくapt-getを使用。
MacOS
$ brew install swig
以上を試したのちに、再度mecab-python3をインストールしてください。
$ pip install mecab-python3