OpenCVで色々やろうというプロジェクトに巻き込まれたので、MacにPythonでopenCVできる環境を整えることになりました。
ちなみに筆者は今までPythonの使用経験はほとんどありません。
なので、以下の導入方法もこれがベストなのかよくわからず、環境によってはうまくいかないようなものかもしれませんので、悪しからず。
目次
- 前提
- pyenv のインストール
- python3 のインストール
- openCV 3 のインストール
- numpy の インストール
- 動作確認
前提
- OS : OSX Sierra (10.12)
- Homebrew は導入済みとします
$ brew update // brewを最新に
※ brew update
に失敗した場合、OSアップデートの際に /usr/local
以下のパーミッションの再設定が必要だったということなようなので以下を参考にしてください。
https://blog.ymyzk.com/2016/06/macos-sierra-homebrew/
pyenv のインストール
※参考 github
https://github.com/yyuu/pyenv
$ brew install pyenv
~/.bash_profile
に pyenv init
を叩くところを追加
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
python3 のインストール
$ pyenv install --list // これでインストール可能なversionが見られます。お好きなものを。
$ pyenv install 3.5.2
僕の環境ではこの時、zlibがないとお怒られました。
$ pyenv install 3.5.2
(中略)
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
どうも最近Xcodeのバージョンを8にしたので、そのせいっぽいです。
※参考
http://qiita.com/maosanhioro/items/bf93540515d4ea75b222
$ xcode-select --install
xcode-select: note: install requested for command line developer tools
// GUIのインストーラが立ち上がります
これでいけました。
$ pyenv install 3.5.2
Downloading Python-3.5.2.tar.xz...
-> https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
Installing Python-3.5.2...
Installed Python-3.5.2 to /Users/masaori/.pyenv/versions/3.5.2
めでたし。
openCV 3 のインストール
$ brew install homebrew/science/opencv3 --with-python3
// なぜか brew install opencv3 だと怒られました・・・
ところがこれは失敗
/tmp/opencv3-20161008-83364-6nps9q/opencv-3.1.0/modules/videoio/src/cap_qtkit.mm:46:9: fatal error: 'QTKit/QTKit.h' file not found
#import <QTKit/QTKit.h>
^
1 error generated.
どうも Sierra (10.12) と openCV 3.1 の組み合わせで起こる問題らしいです。
https://github.com/Homebrew/homebrew-science/issues/4104
https://github.com/opencv/opencv/pull/7159
この辺で解決していて、タイムリーにプルリク取り込まれているようなので、オプションで--HEAD
を設定
$ brew install homebrew/science/opencv3 --with-python3 --HEAD
(中略)
==> Summary
🍺 /usr/local/Cellar/opencv3/HEAD-dd379ec_4: 286 files, 48.4M, built in 3 minutes 34 seconds
無事インストール成功しました!
※ --HEAD指定ということで、stableではないので他の問題が起こるかもしれません。。
シンボリックリンクを張る
brew install
の最後に出てくる、openCVのインストール先のpathに対して張ります。
今回は /usr/local/Cellar/opencv3/HEAD-dd379ec_4
ここ。
$ ln -s /usr/local/Cellar/opencv3/HEAD-dd379ec_4/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages/
numpy の インストール
$ pip3 install numpy
これはつつがなく完了。
動作確認
python上でimportしてみましょう。
$ python -V // pyenvが正しいversionを参照しているか確認
3.5.2
$ python
Python 3.5.2 (default, Oct 8 2016, 17:32:08)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
よくできました!