SamuraiT / mecab-python3

:snake: mecab-python. you can find original version here:http://taku910.github.io/mecab/
https://pypi.python.org/pypi/mecab-python3
Other
539 stars 51 forks source link

miniforgeの仮想環境でImport Errorが発生する #72

Closed XdekcE closed 3 years ago

XdekcE commented 3 years ago

こんにちは。conda-forgeのcondaインストーラーであるminiforgeで構築した仮想環境で MeCabをImportしようすると、Import Errorが発生します。

実行環境とエラーの内容は次の通りです。

実行環境

出力されたエラー

>>> import MeCab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/USER_NAME/miniforge3/envs/tf/lib/python3.8/site-packages/MeCab/__init__.py", line 10, in <module>
    from . import _MeCab
ImportError: dlopen(/Users/USER_NAME/miniforge3/envs/tf/lib/python3.8/site-packages/MeCab/_MeCab.cpython-38-darwin.so, 2): Symbol not found: __ZN5MeCab11createModelEPKc
  Referenced from: /Users/USER_NAME/miniforge3/envs/tf/lib/python3.8/site-packages/MeCab/_MeCab.cpython-38-darwin.so
  Expected in: flat namespace
 in /Users/USER_NAME/miniforge3/envs/tf/lib/python3.8/site-packages/MeCab/_MeCab.cpython-38-darwin.so

上記のエラーはminiforgeで構築した仮想環境で発生し、anacondaで構築した仮想環境では正常に動作します。

同様のエラーが出ている方の解決策を試してみましたが、解決できなかったため、ここで質問させていただきました。 よろしくお願いします。

polm commented 3 years ago

ご報告ありがとうございます。

Macを使っていないのでこちらで確認はできませんが、少し調べたところ、pythonとmecab-python3のアーキテクチャが違うのかもしれません。mecab-python3はOSXでx86_64版しかないので、もしminicondaのPythonがarm64であればこのようなエラーが出るみたいです。

https://github.com/mrjbq7/ta-lib/issues/408

このコマンドでPythonのアーキテクチャを確認できますがどうなっていますか。

file miniconda/bin/python

アーキテクチャ違いが原因でしたら、Pythonをx86_64版に変更すると解決するはずです。

もしそれで解決できなかったら教えてください、他なにか考えられる原因がないか調べてみます。

XdekcE commented 3 years ago

@polm ご返答ありがとうございます。 Pythonアーキテクチャ確認してみたところ、arm64版でしたので、arm64からx86_64に変更し、再度Importしたところ正常に動作しました。有難うございました。