[mecab-users 190] windows環境における、MecabPythonBaindingのインストール

Back to archive index

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でリンク指定をしたり等、いろいろ試したのですが、駄目でした。
どのようにすれば利用できるようになるのでしょうか。
以上よろしくお願いいたします。





mecab-users メーリングリストの案内
Back to archive index