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

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

ただいまの
回答率

88.19%

Python3にMeCabを導入したい。助けてください。エラーが消えません

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 4,432
退会済みユーザー

退会済みユーザー

前提・実現したいこと

マルコフ連鎖を用いて文章の生成を行いたい。
まずその前段階であるMeCabをPythonに入れたいと思い、試行錯誤中。
エラーがどうしても消えません。助けてください。

環境
windows10
Python 3.5.2 
visual studio community 2015

mecab-0.996\src内のソースを書き換え、そのソース本体のビルドはできました。(と思う)
その後のmecab-python-0.996の setup.py のビルドができません。

発生している問題・エラーメッセージ

C:\mecab-python-0.996>python setup.py build
running build
running build_py
running build_ext
building '_MeCab' extension
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\MeCab\sdk -IC:\Users\user\AppData\Local\Programs\Python\Python35-32\include -IC:\Users\user\AppData\Local\Programs\Python\Python35-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" /EHsc /TpMeCab_wrap.cxx /Fobuild\temp.win32-3.5\Release\MeCab_wrap.obj
MeCab_wrap.cxx
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\MeCab\sdk /LIBPATH:C:\Users\user\AppData\Local\Programs\Python\Python35-32\libs /LIBPATH:C:\Users\user\AppData\Local\Programs\Python\Python35-32\PCbuild\win32 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" libmecab.lib /EXPORT:PyInit__MeCab build\temp.win32-3.5\Release\MeCab_wrap.obj /OUT:build\lib.win32-3.5\_MeCab.cp35-win32.pyd /IMPLIB:build\temp.win32-3.5\Release\_MeCab.cp35-win32.lib
   ライブラリ build\temp.win32-3.5\Release\_MeCab.cp35-win32.lib とオブジェクト build\temp.win32-3.5\Release\_MeCab.cp35-win32.exp を作成中
MeCab_wrap.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class MeCab::Tagger * __cdecl MeCab::createTagger(char const *)" (__imp_?createTagger@MeCab@@YAPAVTagger@1@PBD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class MeCab::Lattice * __cdecl MeCab::createLattice(void)" (__imp_?createLattice@MeCab@@YAPAVLattice@1@XZ)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class MeCab::Model * __cdecl MeCab::createModel(char const *)" (__imp_?createModel@MeCab@@YAPAVModel@1@PBD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) char const * __cdecl MeCab::getLastError(void)" (__imp_?getLastError@MeCab@@YAPBDXZ)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static char const * __cdecl MeCab::Tagger::version(void)" (?version@Tagger@MeCab@@SAPBDXZ)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static class MeCab::Tagger * __cdecl MeCab::Tagger::create(int,char * *)" (?create@Tagger@MeCab@@SAPAV12@HPAPAD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static class MeCab::Tagger * __cdecl MeCab::Tagger::create(char const *)" (?create@Tagger@MeCab@@SAPAV12@PBD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static bool __cdecl MeCab::Tagger::parse(class MeCab::Model const &,class MeCab::Lattice *)" (?parse@Tagger@MeCab@@SA_NABVModel@2@PAVLattice@2@@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static class MeCab::Model * __cdecl MeCab::Model::create(int,char * *)" (?create@Model@MeCab@@SAPAV12@HPAPAD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static class MeCab::Model * __cdecl MeCab::Model::create(char const *)" (?create@Model@MeCab@@SAPAV12@PBD@Z)" は未解決です。
MeCab_wrap.obj : error LNK2001: 外部シンボル ""public: static char const * __cdecl MeCab::Model::version(void)" (?version@Model@MeCab@@SAPBDXZ)" は未解決です。
build\lib.win32-3.5\_MeCab.cp35-win32.pyd : fatal error LNK1120: 11 件の未解決の外部参照
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\link.exe' failed with exit status 1120

該当のソースコード

#!/usr/bin/env python
from distutils.core import setup, Extension
setup(name = "mecab-python",
      version = '0.996',
      py_modules=["MeCab"],
      ext_modules = [
          Extension("_MeCab",
                    ["MeCab_wrap.cxx",],
                    include_dirs=[r'C:\MeCab\sdk'],
                    library_dirs=[r'C:\MeCab\sdk'],
                    libraries=['libmecab'])
          ])

試したこと

http://simudaru.hatenablog.com/entry/2014/05/11/010622

http://sutchy.cocolog-nifty.com/sutchy/2015/05/windows-python3.html

http://naokiwatanabe.blogspot.jp/2014/09/mecab.html

を参考に setup.py や MeCab_wrap.cxx を書き換えた。
エラーは減りましたが全部は消えませんでした。また、 MeCab_wrap.cxx の一部をコメントアウトしただけでしたので
一部の機能が使えなくなるかもと思い元に戻しました。

補足情報

pip は mecab-configがどうのこうの言われて入れられませんでした。
エラーの種類としては
http://simudaru.hatenablog.com/entry/2014/05/11/010622
と似ていたがPython3でほかの方がビルドしたものが見つかりませんでした。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

0

下記のサイトが参考になりそうです。

問題になるのは、ソースコードのコンパイル部分ですので、pythonのバージョンは異なっていますが
コンパイルする際の手順は、同一です。

64bit Windows + python 2.7 + MeCab 0.996 な環境をつくる

お試しください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/04 19:27

    mecab-0.996.exeの再インストールから同じ手順で行ったつもりですが消えませんでした。
    windows と python3 の組み合わせがだめなのでしょうか? それともvisual studio 2015 がだめなのでしょうか?
    またコマンドプロンプトで使えなくなった原因は libmecab.dll でした。mecab.exe も上書きコピーすることで解決できましたが setup.py のビルドエラーは変わりませんでした。

    キャンセル

  • 2016/12/05 20:16

    私も試しましたが同じ状況です。なにかわかれば追記します。

    キャンセル

  • 2016/12/06 22:21

    分かりました。解答ありがとうございます。
    何か新しいことが分かりましたらよろしくお願いします。

    キャンセル

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

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

関連した質問

同じタグがついた質問を見る