非Anaconda環境にCaboChaをインストールする(Win)

#### 全ての非Anaconda環境Python使いにこの記事を捧げます。
おがどらです。
タイトルの通りです。自分はこれに一日以上費やしてしまったので供養。
基本的にはAnaconda環境と変わりませんが、必要モジュールがインストールされていないのでエラーを吐くっぽいです。
すでにPythonをインストールしてしまったのでAnacondaを入れたくない><って人にオススメです。
でも面倒くさいのでよっぽどじゃない限りはAnacondaを導入しましょう。
筆者の環境はWindows 10です。

## 前提条件
Pythonは32bit版じゃないと上手く行かないらしいです。
[こちら](https://www.python.org/downloads/windows/)からダウンロードして下さい。
筆者はWindows x86 web-based installerをダウンロード&インストールしました。

```
PS C:\WINDOWS\system32> py -3.8-32 -V
Python 3.8.3
```
このように表示されればOKです。
64bit版と共存させる場合は -3.8-32 (3.8はバージョンにより適宜変える)オプションを指定しないと64bit版が呼び出されます。

```
PS C:\WINDOWS\system32> py
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
PS C:\WINDOWS\system32> py -3.8-32
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
```

このように確かめることが出来ます。
また、pipで32bit版を明示的に呼び出すために

`py -3.8-32 -m pip install hogehoge`
としますので覚えておいて下さい。
ついでにpipをアップグレードしておきましょう。

```
py -3.8-32 -m pip install --upgrade pip
```


##色々インストール（参考記事）
次に
[CaboCha & Python3の環境構築(Windows版)](https://qiita.com/ayuchiy/items/17a2d48116b2da7535eb)
を参考に、諸々の準備をして下さい。
簡単に手順をまとめると
1. MeCabのインストール
2. CaboChaのインストール
3. Visual C++ コンパイル環境のインストール
ですね。ここの部分はAnacondaでもそれ以外でも変わりません。
UTF-8版をどちらもインストールして下さい。

##numpy + mklのインストール
ここからがAnacondaと違います。
Numpyモジュールですが、pipでインストールするものだと使えません。
Anacondaだと標準で入っているらしいのですが、非Anaconda環境だとちょっと面倒くさいことになります。
ちなみにこのままCaboChaを使おうとすると

```
Traceback (most recent call last):
  File "A:/codes/python/test.py", line 4, in <module>
    import CaboCha
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\CaboCha.py", line 28, in <module>
    _CaboCha = swig_import_helper()
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\CaboCha.py", line 24, in swig_import_helper
    _mod = imp.load_module('_CaboCha', fp, pathname, description)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\imp.py", line 344, in load_dynamic
    return _load(spec)
ImportError: DLL load failed while importing _CaboCha: 指定されたモジュールが見つかりません。

Process finished with exit code 1
```
このようなエラーが出ます。
「指定されたモジュールってどれやねん！！！」と四苦八苦しました。

まず最初に既にnumpyが入っている場合はアンインストールします。

```
py -3.8-32 -m pip uninstall numpy
```

次にWheelをインストールします。
Wheelとはwhlファイルからpythonモジュールを読み込むときに必要なライブラリっぽいです。

```
py -3.8-32 -m pip install wheel
```
次にwheelでインストール出来るバージョンを確認します。
PowerShellをそのまま使う場合には以下のようにして下さい。

```
PS C:\WINDOWS\system32> py -3.8-32
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wheel.pep425tags
>>> print(wheel.pep425tags.get_supported(-1))
C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\wheel\pep425tags.py:80: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  if get_flag('Py_DEBUG',
[('cp38', 'cp38', 'win32'), ('cp38', 'none', 'win32'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('cp37', 'none', 'any'), ('cp36', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'win32'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
>>>
```
リストが返ってきます。
このリストの読み方ですが、
`('cp38', 'cp38', 'win32')`
という表記がある場合に
`hogehoge-cp38-cp38-win32.whl`
というファイルのインストールに対応しています、位に捉えてくれればOKです。
Python 3.8.X環境ならcp38に対応していると思います。
whlファイルは[こちら](https://www.lfd.uci.edu/~gohlke/pythonlibs/)からインストール出来ます。
色々ありますがCtrl + Fなどを活用してダウンロードしていきます。
筆者環境では以下のファイルをダウンロードしました。(もしかしたら必要がないものもあるかも知れません)

・numpy-1.19.0+mkl-cp38-cp38-win32.whl
・scipy-1.5.1-cp38-cp38-win32.whl
・scikit_learn-0.23.1-cp38-cp38-win32.whl
・pandas-1.0.5-cp38-cp38-win32.whl
・matplotlib-3.3.0rc1-cp38-cp38-win32.whl

whlファイルからインストールするには、whlファイルを保存したディレクトリまでcdコマンドで移動し、

```
py -3.8-32 -m pip install [ファイル名]
```
とすれば良いです。
mklの入ったnumpyがインストールされたかどうか確認するには

```
import numpy as np
np.show_config()
```
とすると色々出てきます。
`blas_mkl_info:`
の項目が**NOT AVAILABLE**になっていなければインストールが正常に終了しています。Scipyも同様に行って見て下さい。

##確認
これでCaboChaが非Anaconda環境にインストール出来ていると思います。
確認には[参考サイト](https://qiita.com/ayuchiy/items/17a2d48116b2da7535eb)のコードを走らせてみるのが良いと思います。(Python3に対応しているので。)
もし正常に動かないようでしたら以下を試してみて下さい。
・Cabocha, MeCabの再インストール(UTF-8でインストールしているかをもう一度確認する)
・cabochaをwhlからインストールしてみる
後者は[こちら](https://pypi.org/project/cabocha-python/#files)からダウンロードすることが出来ます。


お疲れさまでした。良き日本語解析ライフを！