1. はじめに
PCを更新すると、MeCabとCaboChaもインストールしなおし。
なかなか、うまくできない。
Qiitaはもちろん、Webを駆け回って、何とか解決した。
2. インストール手順
2.1. Windows 10
- もちろん64ビット
2.2. 32ビットのPythonをインストール
- ストアアプリのPythonもダメ
2.3. MeCabとCaboCha
- 公式のインストーラからインストール
- インストール先がデフォルトと違うと、Pythonバインディング方法が異なる
Linuxはどこにインストールされているかわかるからいいのか - UTF8を呪文のように唱えながら
2.4. Visual Studio 2022でいいかぁ
ライセンス違反にならないように、好きなのをインストール
2.5. Pythonバインディング
2.5.1. MeCabとCaboChaがデフォルトのインストール先のとき
次でインストールできるはず
- pip install mecab
- pip install cabocha-python
ikegamiさん感謝です
2.5.2. MeCabとCaboChaはデフォルト以外にインストール c:\ 直下など
この場合はソースコードからインストール
さがしたらパッケージもあるかもしれないけど
ソースコードからインストールってWindowsユーザーからしてみるとかっこいい
で、たくさんの人が
- include_dirs
- library_dirs
- libraries
をインストール環境に合わせたらOKとあるんだけど、どうもダメ。
Linuxユーザーさんかな。
dllのPathを通すとか、dllをsite-packageに置くとか説明があってもよくわからない。
ikegamiさんのコードはどうなっているの?
プロパティ data_files が設定してある。ここに dllの場所を設定すると、一緒にインストールされるみたい。
パッケージ登録している人はちゃんと設定してあるのに、web上では探せなかった。
次に、pip install と python setup.py installでは動きが違うのか、ソースコードを持ってきて、python setup.py install してもダメ。
そこで、ikegamiさんのソースコードをいただいてきて、setup.py を次に変更して、python setup.py install で完了。さらに、ikegamiさんのコードはいろいろ修正済みでそのまま使える。
再び感謝です。
from distutils.core import setup, Extension, os
current_ver ="0.996" # バージョンに合わせて変更
bin_dir = r"C:\Program Files (x86)\MeCab\bin" # インストール環境に合わせて変更
include_dir = r"C:\Program Files (x86)\MeCab\sdk" # インストール環境に合わせて変更
libs_dir = include_dir
libmecab_dir = os.path.join(bin_dir, "libmecab.dll")
setup(name = "mecab",
version = current_ver,
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
library_dirs=[libs_dir],
libraries=["libmecab"]
)
],
data_files = [('', [libmecab_dir])]
)
from distutils.core import setup, Extension, os
current_ver ="0.69" # バージョンに合わせて変更
bin_dir = r"C:\Program Files (x86)\CaboCha\bin" # インストール環境に合わせて変更
include_dir = r"C:\Program Files (x86)\CaboCha\sdk" # インストール環境に合わせて変更
libs_dir = include_dir
libcabocha_dir = os.path.join(bin_dir, "libcabocha.dll")
libcrfpp_dir = os.path.join(bin_dir, "libcrfpp.dll")
setup(name = "cabocha-python",
version = current_ver,
py_modules=["CaboCha"],
ext_modules = [
Extension("_CaboCha",
["CaboCha_wrap.cxx",],
include_dirs=[include_dir],
library_dirs=[libs_dir],
libraries=["libcabocha"]
)
],
data_files = [('', [libcabocha_dir, libcrfpp_dir])]
)