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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

10684閲覧

「ImportError: DLL load failed while importing _MeCab: 指定されたモジュールが見つかりません。」の解決方法について

ryuki

総合スコア8

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2022/04/10 18:24

環境

OS windows11 バーション21H2
Python 3.8.10[MSC v.1928 64 bit (AMD64)] on win32
mecab of 0.996

コード

import MeCab tagger = MeCab.Tagger() print(tagger.parse('今日は自然言語処理をするための環境構築をおこないます。'))

エラーメッセージ

Traceback (most recent call last): File "c:/Users/Owner/Desktop/python/hello.py", line 1, in <module> import MeCab File "C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\MeCab\__init__.py", line 10, in <module> from . import _MeCab ImportError: DLL load failed while importing _MeCab: 指定されたモジュールが見つかりません。

現状
・システム環境変数のpathに「C:\Program Files\MeCab\bin」を設定
・pip install mecab-python3でパッケージインストール
これまでに試したこと
https://teratail.com/questions/351366を参考に、
1.\Python38\site-packages\MeCabの削除、動作確認(同じエラー文)→元に戻す
2.pip uninstall mecab-python3
3.libmecab.dllをsite-packages下にコピーで動作確認(同じエラー文)、その後削除
4.pip install mecab-python3 unidic-lite

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

https://teratail.com/questions/351366
質問に pip install mecab をしたと書いてある
参考にしたという資料には pip install mecab-python-windows をしろと書いてある
状況として pip install mecab-python3 をしている形跡がある
でした。


mecab-python3 以外のmecabバインディングを入れたりしてないなら、
C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\MeCab
にバイナリ libmecab.dll と _MeCab.cpXX-win_amd64.pyd (Pythonバージョンとアーキテクチャでファイル名変わります) があるはずです。それが使われます。


システム環境変数のpathに「C:\Program Files\MeCab\bin」を設定 > 不要
\Python38\site-packages\MeCab\ > mecab-python3の本体。必要
\Python38\site-packages\ に MeCab.py _mecab.cp3x-win_amd64.pyd libmecab.dll > mecab-python3由来ではない。不要(もしこれがあるならmecab-pyhon3以外のmecabバインディングを入れたはず)
pip uninstall mecab-python3 unidic-lite
pip install mecab-python3 unidic-lite を実行

とまとめられるかと。


Windows Storeから入れたPython3.8で再現しました。

C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\MeCab\
に入って欲しいlibmecab.dllが、
C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\lib\site-packages\MeCab\
に置かれているみたいです。

手動でコピーしてきたらimportできます。

CPython公式配布のインストーラでいれたPythonと、Windows Storeから入れたPythonとで挙動が違う問題のようです。
(issueを挙げてもいいかもしれませんがmecab-python3の問題かpipの問題か、関連する仕様が不明です)

投稿2022/04/10 23:40

編集2022/04/11 09:04
quickquip

総合スコア11202

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuki

2022/04/11 08:16

バイナリ libmecab.dllはMeCab内とsite-packages直下にありません。またMeCab.py _mecab.cp3x-win_amd64.pydはMeCab内にあります。この場合、どういった対処をすればよいでしょうか。
ryuki

2022/04/11 08:21

また pip uninstall mecab-python3 unidic-lite pip install mecab-python3 unidic-lite を実行しましたが、同様のエラー文が返ってきました。
ryuki

2022/04/11 09:55

説明のとおりにlibmecab.dllをコピペしたら解決しました!ありがとうございます。高評価させていただきます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問