割と多い種類の記事だとは思うんですが、適当にやっても上手くいかなかったので後世のために書き残し。
"ImportError:No module named cv2"
で困ってる人も必見。
他の記事のまんまやったらエラーになるんだけど!!!って言うgoogle先生と絶交してしまった人もちょっと見てって欲しいです。
#環境
- macOS High Sierra 10.13.6
- homebrew 導入済み
#はじめにすること
macにはデフォルトでPython2がついてきています。
僕は昔、このPythonを使って大学の課題をやっていたんです。
そこにnumpyなどのモジュールを追加していました。それが原因でエラーを引き起こしてしまったみたいなのでとりあえず削除します。
ここは環境によりけりなので、___「俺は初めてPython使うんだぜ!」って人___と、「エラーでたら消すわ」って人は無視して次の "pyenvのインストール" に進んでください。
削除しますと言いましたが、macOSのセキュリティ機能のせいで削除できないので、設定を変更します。
MacでOperation not permittedが出た時の対処法
こちらを参考にして、ファイルを移動できるようにしてください。
sudoでできるやろ〜〜って思ったら出来なかったよ…ママ…
できたらnumpyを探しに行きましょう。バージョンが複数ある場合は全部探します。
$ cd /System/Library/Frameworks/Python.framework/Versions/<version>/Extras/lib/python/
$ ls | grep numpy
結果が表示されたらそれらを削除します。
$ rm -r <ファイル名>
削除できたら、以下のディレクトリでも同様に探して削除します。
$ cd /Library/Python/<version>/site-packages/
$ ls | grep numpy
$ rm -r <ファイル名>
#pyenvのインストール
ではお待ちかね、pyenvをインストールします。
$ brew install pyenv
~/.bash_profile にパスを通します。
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
#Pythonをインストール
$ pyenv install python3.7.1
$ pyenv global 3.7.1
$ python --version
Python 3.7.1
バージョンはお好みで選んでください。僕は3.7.1にしました。
pyenvを使う事で複数のバージョンのPythonを使い分ける事ができます。めっちゃ便利。今日まで知らんかった。
$ pyenv global <version> #全体に適用
$ pyenv local <version> #今いるディレクトリのみ適用
#openCVをインストール
$ brew install opencv --with-python3
他の記事では、このコマンドの前に$ brew tap homebrew/science
をやってね。とか書いてありましたが、そもそもhomebrew/scienceが廃止されてしまったので動きません。
代わりに$ brew tap brewsci/science
をする必要があるみたい。
今はopenCVがhomebrewの公式に置いてあるらしいのでやらなくて良いみたいです。
もし失敗したらやってみてください。
#pyenvへのリンク
では、pyenvからopenCVを使うためにリンクを貼ります。
$ ln -s /usr/local/Cellar/opencv/3.4.3/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so .pyenv/versions/3.7.1/lib/python3.7/site-packages/
openCVがインストールされた場所は🍺 /usr/local/Cellar/opencv/3.4.3
のように表示されているはずです。
もし違ったらそれに応じて変えてください。
#numpyのインストール
$ pip3 install numpy
もし、「pipのバージョンが古いよー」なんて言われた時はpip3 install --upgrade pip
で更新してください。
#動作確認
$ python
Python 3.7.1 (default, Nov 7 2018, 11:41:00)
[Clang 10.0.0 (clang-1000.11.45.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.3'
これでopenCVを使うことができるようになりました!!
#参考サイト
macOS Sierra に pyenv + python3.5 + OpenCV3 をインストール - Qiita
TensowFlowをセットアップしてハマったのでメモ - Qiita
【Mac】brewだけでOpenCV3+Python3(venv)の環境を構築する | from umentu import stupid
OpenCV3+Python3をMacOS HighSierraで 始めよう #初学者 #python3 #OpenCV
#おまけ
QiitaDeckすごいのでみんな使って。
Qiita版TweetDeck!?カラム形式でQiita記事をウォッチできるサービス「QiitaDeck」をリリースしました! - Qiita
現在進行形で進化中だよ!!どんどん使いやすくなっていくみたい。