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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
下記のサイトが参考になりそうです。
問題になるのは、ソースコードのコンパイル部分ですので、pythonのバージョンは異なっていますが
コンパイルする際の手順は、同一です。
64bit Windows + python 2.7 + MeCab 0.996 な環境をつくる
お試しください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.19%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/12/04 15:24
また新たに分かったのですがソースの修正とビルドを行いMeCab本体に上書きコピーをすると、これまでコマンドプロンプトで使えていたMeCabが使えなくなりました。
2016/12/04 19:12
2016/12/04 19:27
windows と python3 の組み合わせがだめなのでしょうか? それともvisual studio 2015 がだめなのでしょうか?
またコマンドプロンプトで使えなくなった原因は libmecab.dll でした。mecab.exe も上書きコピーすることで解決できましたが setup.py のビルドエラーは変わりませんでした。
2016/12/05 20:16
2016/12/06 22:21
何か新しいことが分かりましたらよろしくお願いします。