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

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

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

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

Mecab

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

Q&A

解決済

2回答

6955閲覧

pythonでMecabを使いたいのですが、うまくいきません

Browniet

総合スコア12

Python 3.x

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

Mecab

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

0グッド

1クリップ

投稿2015/07/05 19:33

ここで質問してもよいのかわからないのですが、
どうしても詰まってしまったので質問させて頂きます。

Windows8.1、Python 3.4.3(64bit)です。

形態素分析を行いたく、Mecabを導入することにしました。
このサイトを参考にやってみました。
そして手順の通り、PythonとMecabにPathを通し、setup.pyとmecab.hを書き換えましたが、buildとinstallがうまくいきません。

ここについてアドバイス頂ければ、と思います。

なおsetup.pyに関して、
return string.split (cmd1(str))
は、
return cmd1(str).split()
に。

include_dirs=[r"C:\Program Files\MeCab\sdk"],
library_dirs=[r"C:\Program Files\MeCab\sdk"],

include_dirs=[r"C:\Program Files (x86)\MeCab\sdk"],
library_dirs=[r"C:\Program Files (x86)\MeCab\sdk"],
に変更しています。

buildとinstallをする時点で以下のようになりました。

C:\mecab-python-0.996>python setup.py build
running build
running build_py
running build_ext
building '_MeCab' extension
error: Unable to find vcvarsall.bat

C:\mecab-python-0.996>

どうやらvcvarsall.batが見つからないということですが、
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
にはvcvarsall.batが確かに存在しています。
システム環境変数Pathの部分に関してもC:\Program Files (x86)\Microsoft Visual Studio 12.0\VCと追記しているので、問題はないかと思うのですが……。

試しに http://go.microsoft.com/?LinkId=9348304からVisual C++ 2008 Express EditionをインストールしてPathを通してやってみたのですが、結果は同じでした。

使える情報かどうかはわからないのですが一応書いておきますと、pythonを開いて以下のように入力するとこのようになりました。

import sys
sys.version

'3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)]'

よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

自己解決とはちょっと違いますが、導入に成功したので書いておきます。私の環境での話ですが、
このように行いました。私的なメモをコピペしているので読みにくいのは許してください。

pythonとMecabにpathを通した
環境変数にMECABRC(C:\Program Files (x86)\MeCab\etc\mecabrc)を追加した
MeCab-python-0.996にneu101.seesaa.net/article/272153413.htmlからDLした「libmecab.dll」と「libmecab.lib」を追加した。

http://seesaawiki.jp/spz/d/Windows%A4%CBmecab-python%A4%F2%C6%B3%C6%FEに従ってsetup.pyの書き換え。ただしMeCabの場所は自分の所に。

def cmd2(str):
return string.split(cmd1(str))

def cmd2(str):
return cmd1(str).split()
で。

C:\Program Files (x86)\MeCab\sdkのMeCab.hのclass MECAB_DLL_CLASS_EXTERN Latticeに追加。

class MECAB_DLL_CLASS_EXTERN Lattice {
public:
/**

  • Clear all internal lattice data.

*/
virtual void clear() = 0;
virtual void set_result(const char *str) = 0;

その後
set VS100COMNTOOLS=%VS120COMNTOOLS%
前の100はpythonをコンパイルしたVC++。後ろの120は今入ってるVC++。この値を調べるには

import sys
sys.version

call "%PROGRAMFILES(x86)%\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat" X64
C:\mecab-python-0.996>
この部分はhttp://neu101.seesaa.net/article/272153413.htmlによると
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" X64
だけど、自分がVS2013だからなのか、恐らくパスが違う。というかファイル名も違う。多分これだろうとあたりを付けて変更する。成功。

結果。
set VS100COMNTOOLS=%VS120COMNTOOLS%
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat" X64
python setup.py install

投稿2015/08/14 07:49

Browniet

総合スコア12

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

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

0

ベストアンサー

レジストリからvcvarsall.batを探す動作をするという情報もありますが、
この方法は試されたでしょうか。
pythonでvcvarsall.batエラーが出る。

投稿2015/07/05 21:58

eripong

総合スコア1546

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

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

Browniet

2015/07/05 23:54

その方法は確かめたことがありませんでしたので、やってみました。 紹介して頂いたページでの方法ですが、後半部分がどうしてもわかりませんでした……。regeditで見る訳ではないのでしょうか? 文字列を入力や関数を実行など書いてあるのでPython上でやるのかとも思ったのですが、方法がわかりませんでした。 実行したことについて書くと、 pythonをコマンドプロンプトで起動し、以下のようになりました。 -------------------------------- C:\mecab-python-0.996>python Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from distutils.msvc9compiler import * >>> get_build_version() 10.0 >>> -----------------
eripong

2015/07/06 00:10 編集

regeditで書き込む、で良いと思います。 http://mimumimu.net/blog/2014/06/01/python-で-error-unable-to-find-vcvarsall-bat-が出た場合%E3%80%82/ こちらのページの方ではregeditの画面キャプチャがあるので分かりやすいかも知れません。 今回の場合だと、おそらく キー名: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VC  値名:ProductDir  値:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC を書き込めば良いのではないかと思います。
Browniet

2015/07/06 09:05

regeditで見た結果ですが、 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0の中にはBindingPathsとVCしかありませんでした(ProductDirも無し)。 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\Setup\VCというのがあったので、もしかしたらVisualStudioの導入で失敗しているのでしょうか……。 教えて頂いたことをヒントに、参照先(?)を修正するのがこのregeditでの編集なのかと考え、方法を探してみた結果、どうやらUnable to find vcvarsall.bat に関しては解決できたようです。 以下の手順で行いました。 ----------------------------------- C:\mecab-python-0.996>set VS100COMNTOOLS=%VS120COMNTOOLS% C:\mecab-python-0.996>python setup.py build running build running build_py running build_ext building '_MeCab' extension Traceback (most recent call last): File "setup.py", line 20, in <module> libraries=["libmecab"]) File "C:\Python34\lib\distutils\core.py", line 148, in setup dist.run_commands() File "C:\Python34\lib\distutils\dist.py", line 955, in run_commands self.run_command(cmd) File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run() File "C:\Python34\lib\distutils\command\build.py", line 126, in run self.run_command(cmd_name) File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run() File "C:\Python34\lib\distutils\command\build_ext.py", line 339, in run self.build_extensions() File "C:\Python34\lib\distutils\command\build_ext.py", line 448, in build_exte nsions self.build_extension(ext) File "C:\Python34\lib\distutils\command\build_ext.py", line 503, in build_exte nsion depends=ext.depends) File "C:\Python34\lib\distutils\msvc9compiler.py", line 460, in compile self.initialize() File "C:\Python34\lib\distutils\msvc9compiler.py", line 371, in initialize vc_env = query_vcvarsall(VERSION, plat_spec) File "C:\Python34\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsal l raise ValueError(str(list(result.keys()))) ValueError: ['path'] C:\mecab-python-0.996> ------------------------------- 別の問題が出てきていますが、とりあえず一歩前進です。 eripongさんのお蔭でどうにか進むことが出来ました。本当にありがとうございました。
eripong

2015/07/06 09:14

直接お役に立てなかったようですが、先に進めて良かったです。 ValueErrorなどで検索するてみましたが、以下のページが参考になるかも知れません。 http://baito1024.blog.jp/archives/10201616.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問