Shinta Nakayama
shint****@edu*****
2006年 11月 25日 (土) 18:44:02 JST
はじめまして、電気通信大学の中山と申します。 Windows環境のPythonにMecabPythonBaindingをインストールしようとしてつまづきました。 まず、setup.pyをそのままインストールしようとしたところ次のようなエラーが発生しました。 環境は以下のとおりです WindowsXPPro Python 2.5 MeCab 0.93 VisualStaudio2003 VisualStaudio2005 ---- Traceback (most recent call last): File "C:\mecab-python-0.93\setup.py", line 13, in <module> version = cmd1("mecab-config --version"), File "C:\mecab-python-0.93\setup.py", line 7, in cmd1 return os.popen(str).readlines()[0][:-1] IndexError: list index out of range ---- 上記エラーは以下のページを参考して、setup.pyを書き換えて解決しました。 http://www.atransia.co.jp/home/fukamachi/Diary/2006/01/15/ ---- setup(name = "mecab-python", version = '0.93', py_modules=["MeCab"], ext_modules = [ Extension("_MeCab", ["MeCab_wrap.cxx",], include_dirs=['C:/Program Files/MeCab/sdk'], library_dirs=['C:/Program Files/MeCab/sdk'], libraries=['libmecab']) ]) ---- 次にMeCab_wrap.cxxをコンパイルしようとすると、以下のエラーが発生しました。 ---- MeCab_wrap.cxx(2000) : error C2440: '初期化中' : 'const char *' から 'char *' に 変換できません。 変換で修飾子が失われます。 MeCab_wrap.cxx(4841) : error C2440: '初期化中' : 'const char *' から 'char *' に 変換できません。 変換で修飾子が失われます。 error: command '"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.e xe"' failed with exit status 2 ---- 上記エラーは、ソースコードの該当箇所をconst_castして書き換えて解決しました。 次にMeCab_wrap.objをリンクしようとすると、次のエラーが発生しました。 ---- ライブラリ build\temp.win32-2.5\Release\_MeCab.lib とオブジェクト build\temp. win32-2.5\Release\_MeCab.exp を作成中 MeCab_wrap.obj : error LNK2019: 未解決の外部シンボル "public: static class MeCab ::Tagger * __cdecl MeCab::Tagger::create(int,char * *)" (?create @ Tagger@MeCab@@S APAV12 @ HPAPAD@Z) が関数 __wrap_Tagger_create__SWIG_0 で参照されました。 MeCab_wrap.obj : error LNK2019: 未解決の外部シンボル "public: static class MeCab ::Tagger * __cdecl MeCab::Tagger::create(char const *)" (?create @ Tagger@MeCab@@S APAV12 @ PBD@Z) が関数 __wrap_Tagger_create__SWIG_1 で参照されました。 MeCab_wrap.obj : error LNK2019: 未解決の外部シンボル "public: static char const * __cdecl MeCab::Tagger::version(void)" (?version @ Tagger@MeCab@@SAPBDXZ) が関数 __wrap_Tagger_version で参照されました。 build\lib.win32-2.5\_MeCab.pyd : fatal error LNK1120: 外部参照 3 が未解決です。 error: command '"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\link .exe"' failed with exit status 1120 ---- ここでつまづきました。 libmecab.libがうまくリンクできていないようなのです。 MeCab_wrap.cxxのソース中にpragmaでリンク指定をしたり等、いろいろ試したのですが、駄目でした。 どのようにすれば利用できるようになるのでしょうか。 以上よろしくお願いいたします。