【対処法】pip install mecab-python3のエラー

python

久しぶりに自然言語処理の環境を一から作るとき、形態素解析器MeCabのインストールでコケることがよくあります。

インストール失敗の原因は主に二つあるので、それぞれ対処法をご紹介します。

環境はCentOSでpython 3.6.4ですが、UbuntuやMacでも通用します。
(Windowsはまた少し毛色が違うので助けにならないかもしれません。)

 

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

 

python
pickleでエラーならdillで保存する!【Python】

Pythonのpickleを使うと、いろいろなデータを保存出来て便利ですよね。 しかし、ファイルオブ …

python
1
【WP REST API解説】投稿を更新する(POST /posts/id)

Word PressのAPIを用いてすでに投稿されている記事を更新する方法について説明します。 あわ …

python
【WP REST API解説】投稿を取得する(GET /posts/id)

Word PressのAPIを用いて投稿内容を取得する方法について説明します。 あわせて、Pytho …