OpenCV3のPython3バインディングをhomebrew経由でインストール中にDoes not support building both Python 2 and 3 wrappersのエラーがでて止まったので,その解決方法を記しておきます。
以下のページを参考にしました。
http://www.pyimagesearch.com/2016/12/19/install-opencv-3-on-macos-with-homebrew-the-easy-way/
http://www.pyimagesearch.com/2017/05/15/resolving-macos-opencv-homebrew-install-errors/
Windowsでは,http://qiita.com/hitomatagi/items/d5d475a446ec9c73261e の手法でインストールできるようです。
環境
- MacOS Sierra
- homebrew
- python3.6
- OpenCV3.2
homebrewはインストール済みとします。
Python3のインストール
現時点での最新版Python3.6をインストールします。
brew install python3
OpenCV3はnumpyを利用するので,Python3といっしょにインストールされるpip3を使ってnumpyをインストールしておきましょう。その他必要であればmatplotlibやjupyterなどを入れておくと便利です。
pip3 install numpy
homebrewのフォーミュラを追加
デフォルトのフォーミュラにはOpenCV3がはいってないので追加します。
brew tap homebrew/science
OpenCV3のインストールエラー
ここで,以下のようにインストールを実行すると"Does not support building both Python 2 and 3 wrappers"というエラーがでてインストールに失敗します。
brew install opencv3 --with-python3
OpenCV3のインストール方法
Resolving macOS, OpenCV, and Homebrew install errors によると以下のようにオプションを指定することでOpenCV3のPython3バインディングがインストールができます。
--with-contribはOpenCV3の拡張をインストールするオプションなのでつけなくてもよいです。
brew install opencv3 --with-contrib --with-python3 --without-python
どうやら--with-python3のみだと,Python2バインディングもビルドしようとするためエラーとなるようです。なので明示的にPython2バインディングはいらないとオプションをつけてやります。
環境にもよりますが,5分から10分ほどでインストールが完了します。
.soファイルのシンボリックリンクをはる
OpenCV3のPython3バインディングをインストールした直後だとimport cv2をしてもインポートエラーが発生します。
なので,cv2.soファイルのシンボリックリンクをPython3のsite-packagesフォルダにはります。
/usr/local/lib/python3.6/site-packages
/usr/local/Cellar/opencv3/3.2.0/lib/python3.6/site-packages
ln -s /usr/local/Cellar/opencv3/3.2.0/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so /usr/local/lib/python3.6/site-packages/
"3.2.0"の部分と"python3.6"の部分は各自インストールしたバージョンに合わせてください。
import cv2してみる
ターミナルなどでPython3を起動して,以下のように打ち込むとOpenCV3が使えるようになっているはずです。
import cv2