yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。

この記事は3年以上前に書かれた記事で内容が古い可能性があります

Ubuntu14にMeCab-Python環境を構築する

2017-07-22

Vagrantで作ったまっさらなUbuntuにMecab-Pythonの環境を構築する

□python3.5環境整備
pipをインストール
#apt-get install python-pip
#apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
pyenvをインストール
#git clone git://github.com/yyuu/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# source ~/.bashrc
# pyenv versions
* system (set by /root/.pyenv/version)
pyenv-virtualenvをインストール
# git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
# echo 'eval "$(pyenv virtualenv-init -)"'  >> ~/.bashrc
pyenv-virtualenvを作成
# pyenv versions
* system (set by /root/.pyenv/version)
# pyenv install 3.5.0
設定
# pyenv versions
* system (set by /root/.pyenv/version)
  3.5.0
# ls
# mkdir slack_bot_work
# cd slack_bot_work/
~/slack_bot_work# ls
~/slack_bot_work# pyenv local 3.5.0
~/slack_bot_work# pyenv virtualenv slack_bot_work
~/slack_bot_work# pyenv versions
  system
* 3.5.0 (set by /root/slack_bot_work/.python-version)
  3.5.0/envs/slack_bot_work
  slack_bot_work
~/slack_bot_work# pyenv local slack_bot_work
~/slack_bot_work# pyenv versions
  system
  3.5.0
  3.5.0/envs/slack_bot_work
* slack_bot_work (set by /root/slack_bot_work/.python-version)
□MeCabインストール
~/slack_bot_work# apt-get install mecab
~/slack_bot_work# apt-get install mecab-ipadic
mecab-python3がインストールできない
~/slack_bot_work# apt-get install python-dev
~/slack_bot_work# pip install mecab-python3

python-devをインストールすることで解決

lxmlがインストールできない
~/slack_bot_work# apt-get install libxml2-dev libxslt1-dev
~/slack_bot_work# pip install lxml==3.8.0

libxml2-dev libxslt1-devのインストールとマシンのメモリ増強で解決

メモリ増強は結構ミソ
□MeCab実行
エラー
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 17: invalid start byte
utf-8の辞書が入っていなかった、、、
~/slack_bot_work/mecab_slack_bot# apt-get install mecab-ipadic-utf8
def mecab_perse(text=None):
  m = MeCab.Tagger ("-Ochasen")
  if text != None:
    return m.parse(text)