内容
Python で OpenCV を import しようとした時にいろいろと調べていて、
Homebrew から install した OpenCV のライブラリを pyenvから参照できる方法を調査したので、メモしておく。
前提
python3 で OpenCV のライブラリを使いたかったので、 pyenv の local のバージョンは anaconda3-2.x
を使いました。
今回、自分の環境は anaconda3-2.5.0
を設定しています。
$ pyenv local
anaconda3-2.5.0
作業手順
-
Homebrew で OpenCV を python3 で使えるようにインストール
インストールするときのオプションを調べます。$brew info opencv3
実際にインストールを行います。
$ brew install opencv3 --with-python3 2.1.1
==> Installing opencv3 from homebrew/science
==> Installing dependencies for homebrew/science/opencv3: eigen, ilmbase, openexr, homebrew/python/numpy
==> Installing homebrew/science/opencv3 dependency: eigen
==> Downloading https://homebrew.bintray.com/bottles/eigen-3.2.8.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring eigen-3.2.8.el_capitan.bottle.tar.gz
🍺 /usr/local/Cellar/eigen/3.2.8: 368 files, 3.5M
==> Installing homebrew/science/opencv3 dependency: ilmbase
==> Downloading https://homebrew.bintray.com/bottles/ilmbase-2.2.0.el_capitan.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring ilmbase-2.2.0.el_capitan.bottle.1.tar.gz
🍺 /usr/local/Cellar/ilmbase/2.2.0: 347 files, 5.5M
==> Installing homebrew/science/opencv3 dependency: openexr
==> Downloading https://homebrew.bintray.com/bottles/openexr-2.2.0.el_capitan.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring openexr-2.2.0.el_capitan.bottle.1.tar.gz
🍺 /usr/local/Cellar/openexr/2.2.0: 129 files, 11.4M
==> Installing homebrew/science/opencv3 dependency: homebrew/python/numpy
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading https://pypi.python.org/packages/source/n/numpy/numpy-1.10.4.tar.gz
######################################################################## 100.0%
==> Downloading https://pypi.python.org/packages/source/n/nose/nose-1.3.7.tar.gz
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/usr/local/Cellar/numpy/1.10.4/libexec/nose --single-version-externally-managed --r
==> python setup.py build --fcompiler=gnu95 install --prefix=/usr/local/Cellar/numpy/1.10.4
==> Downloading https://pypi.python.org/packages/source/n/nose/nose-1.3.7.tar.gz
Already downloaded: /Library/Caches/Homebrew/numpy--nose-1.3.7.tar.gz
==> python3 -c import setuptools... --no-user-cfg install --prefix=/usr/local/Cellar/numpy/1.10.4/libexec/nose --single-version-externally-managed --
==> python3 setup.py build --fcompiler=gnu95 install --prefix=/usr/local/Cellar/numpy/1.10.4
==> Caveats
Python modules have been installed and Homebrew's site-packages is not
in your Python sys.path, so you will not be able to import the modules
this formula installed. If you plan to develop with these modules,
please run:
mkdir -p /Users/atsushi/.local/lib/python3.5/site-packages
echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/atsushi/.local/lib/python3.5/site-packages/homebrew.pth
==> Summary
🍺 /usr/local/Cellar/numpy/1.10.4: 1,393 files, 26.5M, built in 4 minutes 10 seconds
==> Installing homebrew/science/opencv3
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading https://github.com/Itseez/opencv/archive/3.1.0.tar.gz
==> Downloading from https://codeload.github.com/Itseez/opencv/tar.gz/3.1.0
######################################################################## 100.0%
==> Patching
patching file modules/videoio/src/cap_qtkit.mm
==> Downloading https://downloads.sourceforge.net/project/opencvlibrary/3rdparty/ippicv/ippicv_macosx_20141027.tgz
==> Downloading from http://liquidtelecom.dl.sourceforge.net/project/opencvlibrary/3rdparty/ippicv/ippicv_macosx_20141027.tgz
######################################################################## 100.0%
==> cmake .. -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/opencv3/3.1.0_2 -DCMAKE_BUI
==> make
==> make install
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.
opencv3 and opencv install many of the same files.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/opencv3/lib
CPPFLAGS: -I/usr/local/opt/opencv3/include
If you need Python to find bindings for this keg-only formula, run:
echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
mkdir -p /Users/atsushi/.local/lib/python3.5/site-packages
echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/atsushi/.local/lib/python3.5/site-packages/homebrew.pth
==> Summary
🍺 /usr/local/Cellar/opencv3/3.1.0_2: 251 files, 121.8M, built in 41 minutes 40 seconds
```
-
シンボリックリンクを貼る
ln -s /path/to/Cellar/opencv3/3.1.0_2/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so /path/to/.pyenv/versions/anaconda3-2.5.0/lib/python3.5/site-packages/
```
参照できているか確認する
Homebrew で install した OpenCV のバージョンが出力できれば完了のはずです。以下の手順でバージョンを調べられます。
Python 3.5.1 |Anaconda 2.5.0 (x86_64)| (default, Dec 7 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
感想
シンプルなので、 pip install
でインストールできないライブラリなどの場合は楽に使えるようになるかと思います。
OpenCV 以外にどのようなライブラリがあるかはよくわかりませんが…笑
備考
とりあえず python で OpenCV のライブラリを import して バージョン出力するところまでやりました。
API を参照するなどはまだ確認できていないので、確認ができましたら改めて追記します。