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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Mecab

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

Q&A

0回答

4421閲覧

MeCab、CaboCha のPythonバインディングスがうまくいきません

GAKIYU

総合スコア8

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Mecab

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

0グッド

0クリップ

投稿2016/05/18 01:19

Mecab と CaboCha を windows7上で python(python2.7)から使う目的で、インストール作業をしています。

・MecabとCabochaは、それぞれインストールできて、Windows上のコマンドプロンプトで動作するのですが、
・MecabとCabocha のpython バインディングスのインストールがうまくいきません。

Mecab、Cabocha 及び その Pythonバインディングスの windowsでのインストールについては、ネット上に(エラー対応を含めて)解説が
http://seesaawiki.jp/spz/d/Windows%A4%CBmecab-python%A4%F2%C6%B3%C6%FE
等、いくつもあって、共通して出ている setup.py の修正まではいいのですが、その後、
python setup.py install
とやると、下記のようになります。


C:\JNLP\work\Mecab\mecab-python-0.996>python setup.py install

running install
running build
running build_py
creating build
creating build\lib.win32-2.7
copying MeCab.py -> build\lib.win32-2.7
running build_ext
building '_MeCab' extension
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Program1\MeCab\sdk -IC:\Anaconda2\include -IC:\Anaconda2\PC -c MeCab_wrap.cxx -o build\temp.win32-2.7\Release\mecab_wrap.o
MeCab_wrap.cxx: In function 'void init_MeCab()':
MeCab_wrap.cxx:8309:21: warning: variable 'md' set but not used [-Wunused-but-set-variable]
PyObject *m, *d, *md;
^
writing build\temp.win32-2.7\Release_MeCab.def


ここまでは、(Mecabでは warningはありますが、Cabichaはwraningもなく、)動いて、それぞれ「Mecab.def」,「_Cabocha.def」はできるのですが、続いて、


C:\MinGW\bin\g++.exe -shared -s build\temp.win32-2.7\Release\mecab_wrap.o build\temp.win32-2.7\Release_MeCab.def -LC:\Program1\MeCab\sdk -LC:\Anaconda2\libs -LC:\Anaconda2\PCbuild -LC:\Anaconda2\PC\VS9.0 -llibmecab -lpython27 -lmsvcr90 -obuild\lib.win32-2.7_MeCab.pyd
build\temp.win32-2.7\Release\mecab_wrap.o:MeCab_wrap.cxx:(.text+0x151d): undefined reference to _imp___ZN5MeCab13createLatticeEv' build\temp.win32-2.7\Release\mecab_wrap.o:MeCab_wrap.cxx:(.text+0x249b): undefined reference to MeCab::Model::version()'
build\temp.win32-2.7\Release\mecab_wrap.o:MeCab_wrap.cxx:(.text+0x2af6): undefined reference to `MeCab::Tagger::version()'

: (同じような 「undefined reference」が続く)

build\temp.win32-2.7\Release\mecab_wrap.o:MeCab_wrap.cxx:(.text+0xae60): undefined reference to _imp___ZN5MeCab12getLastErrorEv' build\temp.win32-2.7\Release\mecab_wrap.o:MeCab_wrap.cxx:(.text+0xb18b): undefined reference to _imp___ZN5MeCab13createLatticeEv'
collect2.exe: error: ld returned 1 exit status
error: command 'C:\MinGW\bin\g++.exe' failed with exit status 1


とエラーになります。Cabochaもほぼ同じメッセージの流れで同様のエラーで終了します。

Anaconda/python2.7、MINGW がインストールされている環境で、C コンパイラ/リンカは、MINGW上のgcc, g++ が起動されます。
尚、ネット上の解説では、VisualStudioのインストール、環境変数「VS90COMNTOOLS」の Visual Studioのアドレスへの書き換え指示があったので、インストール済みのVisualStudio12のアドレスに書き換えましたが、gcc, g++ が動きます。

MeCabもCabochaも共通の原因だと思いますが、どのような対処をすればよいか、アドバイスをお願いします。

※ MeCabのPythonバインディングスについては、http://qiita.com/buruzaemon/items/975027cea6371b2c5ec3で紹介されている「natto-py」というツールで、簡単にPythonバインディングスはできたのですが、Cabochaでは使えないので、MeCabとCabochaに共通のPythonバインディングスを何とかしたいと思います。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問