0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】Jupyter仮想マシンのターミナルでMeCabをインストールしたのに、notebookでMeCabがimportできない問題の原因と解決方法

Last updated at Posted at 2025-03-19

MeCabの辞書のパスが見つからない問題は、この記事では解決しません。ご容赦ください...

【マシン】
Windows

問題はタイトルの通り。

Jupyter のターミナル上でMeCabをインストール完了。

$ pip install MeCab

そのままターミナルでテストしてみよう。
MeCabを起動して使ってみるぞ。

$ Python
> import MeCab
> t = MeCab.Tagger()
> result = t.parse("すもももももももものうち")
> print(result)

すもも  スモモ  スモモ  李      名詞-普通名詞-一般                      0
も      モ      モ      も      助詞-係助詞
もも    モモ    モモ    桃      名詞-普通名詞-一般                      0
も      モ      モ      も      助詞-係助詞
もも    モモ    モモ    桃      名詞-普通名詞-一般                      0
の      ノ      ノ      の      助詞-格助詞
うち    ウチ    ウチ    内      名詞-普通名詞-副詞可能                  0

うんうん、ご機嫌な進捗や。

テストもできたことだし、本格的にnotebook上でMeCabをimportして開発していくか。

$ import MeCab
ModuleNotFoundError: No module named 'MeCab'

なんでやねん!!!

ということでいろいろ調べてみたところ、少なくとも私の環境ではJupyterのターミナルで使っているPythonとnotebookで使っているPythonが別々らしい。

Jupyterターミナルのコマンドラインにて
$ which Python
alias python='python3'
        ~/anaconda3/bin/python3

一方、notebook上のセルにて
$ import sys
$ print(sys.executable)
/bin/python3

である。

結論: MeCab が動いている Python のパスをJupyter カーネルとしてJupyter に登録した

1. ターミナル上で、Pythonのパスを確認

ターミナル上にて
$ which python

これで、MeCab が動いている Python のパスが分かります。

2. Jupyter にその環境をカーネルとして登録

同じくターミナル上にて
$ pip install ipykernel
$ python -m ipykernel install --user --name mecab_env --display-name "Python (MeCab)"

これにより、Jupyter Notebook で "Python (MeCab)" というカーネルが選択できるようになります。

3. Jupyter Notebook でカーネルを変更

「Kernel」→「Change Kernel」→「Python (MeCab)」を選択

image.png

本当に使えるようになったか確認

image.png

image.png

これでOK

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?