質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

MecabがPython3で使えない

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,659

Terratale

score 19

Mecab-python3を正しくインストールすることができず困っています。
今まで私はAnaconda2でMecabを使っていたのですが、先日Anaconda2をアンインストールしてAnaconda3を使い始めました。
そこで、Anaconda3でもMecabを使えるようにするため、mecab-python3をインストールしよう思い、ターミナルで

sudo pip install mecab-python3


というコマンドを実行すると、

イメージ説明
という結果が表示されました。
赤字の警告文があったため、mecab-python3がきちんとインストールされているかどうかの確認のため、
「pip list」や「conda list」などのコマンドを実行してみると、
どちらも以下の2つの図のように
↓「pip list」結果
イメージ説明
↓「conda list」結果
イメージ説明
パッケージがインストール済みである旨が書いてありました。
しかし、いざpython3の対話モードを立ち上げて

import Mecab


というように入力すると、

>>> import Mecab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Mecab'


のようなエラーが出てしまい、Mecabをpythonで使うことができませんでした。
Mecab自体はきちんとインストール済みであり、「mecab」とコマンドを実行した後「Mecabはフリーウェアです」と入力すると下の結果を返すことを確認済みです。

イメージ説明

また、一度mecab-python3をアンインストールしようとたらどうなるか調べるため、「pip uninstall mecab-python3」というコマンドを実行すると、

イメージ説明

という結果が出力され、その後再び「pip list」や「conda list」を実行してみても結果は変わっていませんでした。

また、「which pip」の結果は

/Users/1510370214b/anaconda3/bin/pip


「which python」の結果は

/Users/1510370214b/anaconda3/bin/python

また、sys.pathは

>>> import sys
>>> print(sys.path)
['', '/Users/1510370214b/anaconda3/lib/python36.zip', '/Users/1510370214b/anaconda3/lib/python3.6', '/Users/1510370214b/anaconda3/lib/python3.6/lib-dynload', '/Users/1510370214b/anaconda3/lib/python3.6/site-packages', '/Users/1510370214b/anaconda3/lib/python3.6/site-packages/aeosa']


となっていました。

どうしたらpython3でMecabを使えるようになるでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+1

「smart-open 1.6.0~」と「distributed 1.21.8~」が気になるなら、手動でbz2fileとmsgpackのインストールを試みては如何ですか?

下のpipのバージョンの警告は本件とは(ほぼ確実に)関係ないはずです。バージョンアップして損はしないとは思いますが……


とても適当な原因の予想。

  1. そもそもちゃんとインストールできていたが、import Mecabのせいで失敗していた
  2. アンインストールを試みたとき、本体のファイルは消去できたが~.egg-infoだけ権限が特別だったので、アンインストールが途中で失敗して残った(なんでやねん、というツッコミなしで・・・)
  3. 現状

アンインストールが途中でぽしゃってるのが辛いところですね。pipとcondaの管理情報が壊れてなきゃいいですけど(信じるしか無い)。

対処法らしきもの。

  • とりあえずsudo pip uninstall mecab-python3してみる。ダメなら手動でゴミ(~.egg-infoと、他にmecab-python3関連らしきものがあれば)を掃除しておく
  • 改めてpip install mecab-python3してみる。もし上手く行かなければ--ignore-installedオプション付ける

たぶんこれで大丈夫なはずです。保証はできませんが。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/02 22:01

    回答ありがとうございます。
    とりあえずbz2fileとmsgpackのインストールを試してみることにします。

    キャンセル

  • 2018/10/06 17:37

    インストールに失敗し中途半端に作成された「/anaconda3/lib/python3.6/site-packages/mecab_python3-0.7-py3.6.egg-info」のフォルダを削除し、bz2fileとmsgpackのインストールを済ませたのち、再び「sudo pip install mecab-python3」コマンドを実行したらきちんとインストールに成功し、pythonでMeCabをインポートできることも確認しました。

    キャンセル

+1

×Mecab
○MeCab

https://pypi.org/project/mecab-python3/ とか
https://github.com/SamuraiT/mecab-python3 ぐらいは見ましょう。


インストールをsudoでおこなったので作成されたファイルが管理者の持ち物になっていると思います。

sudo chown -R 1510370214b: /Users/1510370214b/anaconda3/lib/python3.6/site-packages/MeCab.py /Users/1510370214b/anaconda3/lib/python3.6/site-packages/_MeCab.* /Users/1510370214b/anaconda3/lib/python3.6/site-packages/mecab_python3-0.7-py3.6.egg-info/


をしておくといいと思います。
conda や pip のインストール先が自分のディレクトリなら管理者権限はいりません。どこにインストールしようとしているかを自覚していないと、こういったコマンドは扱えないですよ。


sudo chown -R 1510370214b: /Users/1510370214b/anaconda3/lib/python3.6/site-packages/MeCab.py /Users/1510370214b/anaconda3/lib/python3.6/site-packages/_MeCab.* /Users/1510370214b/anaconda3/lib/python3.6/site-packages/mecab_python3-0.7-py3.6.egg-info/
pip uninstall mecab-python3
(削除はyキーで)
pip install --no-cahce-dir mecab-python3


と試してみてどうなるか、おかしなところがあればどこでどうなるかを調べましょう。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/02 16:46 編集

    sys.pathは 普通ですね。 /Users/1510370214b/anaconda3/lib/python3.6/site-packages/MeCab.py は実在しますか? 実在するとなるとかなり原因不明ですね。

    キャンセル

  • 2018/10/02 16:56

    /Users/1510370214b/anaconda3/lib/python3.6/site-packages/を見てみると、meCab.pyはありませんでした。
    ただ、mecab_python3-0.7-py3.6.egg-infoというフォルダがありました。

    キャンセル

  • 2018/10/02 17:27

    だとするとインストールが失敗してますね(もしくはインストールした後に消したか)。アンインストールしてインストールし直しかと。

    キャンセル

0

イメージ説明
エラーメッセージの中に書いてあると思うのですが、
pipはデフォルトだとver10なのでupgradeしてver18にしてから再度Mecabを入れ直してみてはどうでしょうか? 

python -m pip install --upgrade pip

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/02 17:03

    回答ありがとうございます。
    pipのアップデートするコマンドを実行してみました。
    すると、mecab-python3をインストールしようとした時と同じで、最終的には「Successfully installed pip-18.0」
    と言われるのですが、途中で
    「smart-open 1.6.0 requires bz2file, which is not installed.
    distributed 1.21.8 requires msgpack, which is not installed.」
    という赤字のエラーが出ていました。

    キャンセル

  • 2018/10/02 20:44

    https://qiita.com/unias_day/items/f041b7c46543f38f78f7
    再インストールしているとのことなので、
    アンインストールしてフォルダも削除して、
    再インストールしてスッキリしましょう。
    現状の問題をコメントのやり取りだけで解決するのは困難かと。

    キャンセル

0

pythonのバージョンを3.4以下にして実行したらうまくいくかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる