brewでインストールしたOpenCV 3をpyenvのvirtualenv環境で使う
brewでOpenCV 3を入れた場合、pyenvで作成したvirtualenv環境では、デフォルトでimport cv2
ができない。
numpyのインストールと、OpenCV 3へのシンボリックリンク作成が必要なようなのでメモ。
環境
手順
まずはOpenCV 3を使いたいpythonのvirtualenv環境を有効化する。
便宜的に、環境作成からの手順を載せる。
$ pyenv virtualenv 3.5.2 opencv-test $ pyenv local opencv-test
環境を有効化したら、pipでnumpyを導入する。
$ pip install numpy
次にbrewでインストールされたOpenCV 3の場所を確認する。
恐らくは下記辺りに落ちているはず。
インストール時のバージョン等によって細部は異なる。
/usr/local/Cellar/opencv3/3.0.0/lib/python3.4/site-packages/cv2.so
自分の場合はHEADからインストールを行ったので、下記のようになった。
/usr/local/Cellar/opencv3/HEAD-300f923_4/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so
ここで、おもむろにPythonの対話型シェルを起動し、virtualenv環境のsite-packages
の場所を調べる。
$ python >>> import site; site.getsitepackages() ['/Users/hoge/.pyenv/versions/opencv-test/lib/python3.5/site-packages']
恐らく上記のような感じで表示されるはず。
上記フォルダに移動し、OpenCV 3へのシンボリックリンクを生成する。
$ cd /Users/hoge/.pyenv/versions/opencv-test/lib/python3.5/site-packages $ ln -s /usr/local/Cellar/opencv3/HEAD-300f923_4/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so ./
最後に、きちんとインポートできるかおよびOpenCVのバージョンを確認する。
virtualenvの環境が有効な箇所に移動し、Pythonの対話型シェルを起動。
$ python >>> import cv2 >>> cv2.__version__ '3.1.0-dev'
これでOpenCV 3が、pyenvのvirtualenv環境で使用できるようになった。
参照
Mac OS X で OpenCV 3 + Python 2/3 の開発環境を整備する方法 – ymyzk’s blog
site-packagesの場所を確認する - プログラムは、用いる言葉の選択で決まる