全ての非Anaconda環境Python使いにこの記事を捧げます。
おがどらです。
タイトルの通りです。自分はこれに一日以上費やしてしまったので供養。
基本的にはAnaconda環境と変わりませんが、必要モジュールがインストールされていないのでエラーを吐くっぽいです。
すでにPythonをインストールしてしまったのでAnacondaを入れたくない><って人にオススメです。
でも面倒くさいのでよっぽどじゃない限りはAnacondaを導入しましょう。
筆者の環境はWindows 10です。
前提条件
Pythonは32bit版じゃないと上手く行かないらしいです。
こちらからダウンロードして下さい。
筆者は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版)
を参考に、諸々の準備をして下さい。
簡単に手順をまとめると
- MeCabのインストール
- CaboChaのインストール
- 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ファイルはこちらからインストール出来ます。
色々ありますが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環境にインストール出来ていると思います。
確認には参考サイトのコードを走らせてみるのが良いと思います。(Python3に対応しているので。)
もし正常に動かないようでしたら以下を試してみて下さい。
・Cabocha, MeCabの再インストール(UTF-8でインストールしているかをもう一度確認する)
・cabochaをwhlからインストールしてみる
後者はこちらからダウンロードすることが出来ます。
お疲れさまでした。良き日本語解析ライフを!