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

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

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

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Mecab

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

Q&A

1回答

6028閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Mecab

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

0グッド

0クリップ

投稿2016/12/03 17:57

###前提・実現したいこと
マルコフ連鎖を用いて文章の生成を行いたい。
まずその前段階である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

###該当のソースコード

Python

1#!/usr/bin/env python 2from distutils.core import setup, Extension 3setup(name = "mecab-python", 4 version = '0.996', 5 py_modules=["MeCab"], 6 ext_modules = [ 7 Extension("_MeCab", 8 ["MeCab_wrap.cxx",], 9 include_dirs=[r'C:\MeCab\sdk'], 10 library_dirs=[r'C:\MeCab\sdk'], 11 libraries=['libmecab']) 12 ])

###試したこと
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でほかの方がビルドしたものが見つかりませんでした。

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

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

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

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

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

guest

回答1

0

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

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

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

お試しください。

投稿2016/12/04 00:38

nagaetty

総合スコア1106

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

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

退会済みユーザー

退会済みユーザー

2016/12/04 06:24

URLを参考に書き換えたり入れなおしたりしましたが、同じエラーが出て解決しませんでした。 また新たに分かったのですがソースの修正とビルドを行いMeCab本体に上書きコピーをすると、これまでコマンドプロンプトで使えていたMeCabが使えなくなりました。
nagaetty

2016/12/04 10:12

すみません。オリジナルのmecab.exeは、32bit版のようですので、再度mecab-0.996.exeをインストールしてください。
退会済みユーザー

退会済みユーザー

2016/12/04 10:27

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

2016/12/05 11:16

私も試しましたが同じ状況です。なにかわかれば追記します。
退会済みユーザー

退会済みユーザー

2016/12/06 13:21

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問