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

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

ただいまの
回答率

90.01%

PythonにMeCabをバインドしたが動かない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,050

okuya

score 15

python setup.py build を実行したら、それまで正常に動作していたmecab.exeが動作を停止するようになりました。
何度見直しても、実施した手順に誤りはないと思います。
どのようにすれば正常に動作するようになるかご教示頂けないでしょうか。
よろしくお願いします。

●環境

・Windows Edition:Windows 7 Professional  Service Pack 1
・pythonバージョン:Python 3.6.0 :: Anaconda 4.3.0 (64-bit) 
・pythonがビルドされた環境:14.0

●実施した手順

(1)Windows 7/64bit に mecab-0.996をインストール。
インストールパスは、C:\MeCab。

(2)MeCab動作確認 ・・・OK。

(3)Visual C++ Builder インストール

(4)Visual Studio Community 2015 インストール後、Python機能拡張を
インストール。

(5)http://qiita.com/tobesan/items/6b6f3a025fdd177ef52a を参考に、
以下のMeCabソースをWindows 7 64bit用に修正。
Makefile.msvc.in、feature_index.cpp、writer.cpp、mecab.h、
common.h

(6)mecab-0.996/srcに移動し、コマンドプロンプトの管理者権限でmakeを実施。

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
nmake -f Makefile.msvc.in

(7)MeCabの動作確認 ・・・OK。

(8)mecab-0.996/src内でmakeした以下のファイルをC:\MeCab\bin にコピー。
libmecab.dll、mecab-cost-train.exe、mecab-dict-gen.exe、
mecab-dict-index.exe、mecab-system-eval.exe、
mecab-test-gen.exe 、mecab.exe 

(9)mecab-0.996/src内でmakeした以下のファイルをC:\MeCab\sdk にコピー。
mecab.h、libmecab.lib

(10) mecab-python-0.996\setup.pyを編集

1  #!/usr/bin/env python
2
3  from distutils.core import setup,Extension,os
4  #import string
5
6  #def cmd1(str):
7  #    return os.popen(str).readlines()[0][:-1]
8
9  #def cmd2(str):
10 #    return string.split (cmd1(str))
11
12 setup(name = "mecab-python",
13     version = "0.996",
14    py_modules=["MeCab"],
15    ext_modules = [
16        Extension("_MeCab",
17            ["MeCab_wrap.cxx",],
18            include_dirs=[r"C:\MeCab\sdk"],
19            library_dirs=[r"C:\MeCab\sdk"],
20            libraries=["libmecab"])
21            ])

(11) mecab-python-0.996をビルド。管理者権限で以下を実施。

python setup.py build

(12)C:\mecab-python-0.996\buildが更新されていることを確認。

(13)MeCab動作確認  ・・・「 mecab.exe は動作を停止しました」

--- 無駄と思いつつも、念のため以下も実施 ---
(14)mecab-python-0.996インストール

python setup.py install

(15)PythonからMeCabの動作確認・・・「 Python は動作を停止しました」

python

import MeCab
m=MeCab.Tagger("-Owakati")
text ="すもももももももものうち"
m.parse(text)

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • okuya

    2017/08/17 15:02

    関連するアプリケーション、パッケージをアンインストール、関連するディレクトリを削除して、最初からひとつづつ手順を確認しながら、関連アプリケーションをインストールし直したら正常に動作するようになりました(2017.7.30)。定かではないですが、再buildする際にC:\mecab-python-0.996\buildを削除していなかったことが原因と思われます。

    キャンセル

  • can110

    2017/08/17 15:59

    動作してよかったです。原因と解決策を自己回答として解決済みにしていただけると、後に検索する場合に答えを見つけやすくなります。

    キャンセル

  • okuya

    2017/08/17 18:15

    ご助言、ありがとうございます。

    キャンセル

回答 1

check解決した方法

+1

関連するアプリケーション、パッケージをアンインストール、関連するディレクトリを削除して、最初からひとつづつ手順を確認しながら、関連アプリケーションをインストールし直したら正常に動作するようになりました(2017.7.30)。
原因は定かではないですが、再buildする際、C:\mecab-python-0.996\buildを削除しないと、\build配下にあるファイルは > python setup.py build 時に上書きコピーされないみたです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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