普段macOS使いなのですが、Windows 10の環境で機械学習環境を構築したらちょっとつまづいたので備忘録的にメモ。
OpenCV のインストール
まずはanaconda…は重いのでminicondaをインストール。
インストール先はデフォルトの通りユーザーフォルダの下 C\:Users\kmotohas\Miniconda3
としました。
conda
コマンドを使えるように、 C\:Users\kmotohas\Miniconda3\condabin
を環境変数 Path
に追加。
同様にpip
コマンドを使えるように、C\:Users\kmotohas\Miniconda3\Scripts
を Path
に追加。
これでpipが使えるようになったので試しにOpenCVをインストールしてみると、エラーが出ました。
(色々事情があるので、初めからcondaでインストールすればいいだろうというツッコミは勘弁)
$ pip install opencv-python
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
...
SSL周りで怒られているので、condaでopensslをインストールしたら問題なく動作しました。
$ conda install openssl
...
$ pip install opencv-python
...
しかし、PythonのインタープリターからOpenCVをインポートしようとするとnumpy周りでエラーが出ます。
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\kmotohas\Miniconda3\lib\site-packages\cv2\__init__.py", line 3, in <module>
from .cv2 import *
ImportError: numpy.core.multiarray failed to import
これはnumpyをアンインストールしてからインストールしなおすと解決します。
$ pip uninstall numpy
...
$ pip install numpy
...
という感じで、僕のWindows 10の初期設定でつまづいた点でした。
関係ないけど…
condaとpipでインストールしたnumpyは実は中身違うので注意が必要です。
numpyはご存知行列計算ライブラリなわけですが、裏で使われている行列演算の実装が異なります。
pip install numpy
-> OpenBLAS
conda install numpy
-> MKL
(多分使っているマシンのCPUがIntel製の場合のみ。ARM CPUだったら何が使われるのでしょう。)
condaとpipの使い分けにはご注意を。