python用cv2.soが見つからない場合の注意点(OpenCV)
2016/09/03
OS:Ubuntu14.04(LTS)
pyenv, anaconda2-4.1.0
ubuntu14.04でpython用にOpenCV3.0.0をインストールした。
chainerで使用するために画像のリサイズ処理を実行するため、cv2をimportする必要があった。インストールは基本的に
Ubuntu14.04にpython用にOpenCV3.0.0をインストール - Qiita ー①
に従ったが、pyenvを使用した環境では注意する点があったためここに記載する。
①に従ってOpenCVのインストールを進めると、”python用設定”の項目にあるように
opencv-3.0.0/build/lib
にcv2.soが作成されるが、筆者の環境では作成されなかった。
調べたところ、
ubuntu14にpython,numpy,opencv3を入れる - Qiita ー②
のopencvの項に、pythonのバージョンをsystemに戻さなければcv2.soが見つからないとの記載を発見し、
$ pyenv global system
する。そして再びbuildとinstallを繰り返すが、cv2.soは発見できなかった。
筆者の環境には
データサイエンティストを目指す人のpython環境構築 2016 - Qiita ー③
に従い、pyenvを介してanacondaの仮想環境が構築されており、.bashrcに
export PATH="$PYENV_ROOT/versions/anaconda2-4.1.0/bin/:$PATH"
が記載されている。
③で示されているが、この記述があるとpyenv globalやpyenv localを受け付けず、常にanacondaが使用されることがわかった。
そこで上記の記述を削除し、build,installを繰り返したが、やはりcv2.soを発見できない。
ここで、筆者はUbuntu歴が浅く、現在のところpyenv,anacondaを使用していないため、今回はこれらをアンインストールすることとした。
まずはanacondaをアンインストールする。
公式
Anaconda install | Continuum Analytics: Documentation
に従い、anacondaをアンインストール(フォルダの削除)する。
次にpyenvをアンインストールする。
公式
GitHub - yyuu/pyenv: Simple Python version management
に従い、pyenvをアンインストール(フォルダの削除)する。
上記が終了後、ターミナルを再起動し、①のOpenCVのインストール手順を実行した。
尚、①のconfigureの項にあるビルド設定に関して、
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_FFMPEG=OFF -D BUILD_opencv_python2=ON ..
の引数にある
BUILD_NEW_PYTHON_SUPPORT=ON
は”実行されなかった”という趣旨の警告が表示されるが、以降の手順に問題はない。(ソースを発見できなかったが、どこかのサイトでこの引数がすでに廃止されているという記述を目にした。)
インストールが完了すると、
~/opencv-3.0.0/build/lib
にcv2.soが作成されているので、
/usr/local/lib/python2.7/site-packages
および
/usr/local/lib/python2.7/dist-packages
の両方にコピーする。
コピーが完了したら、ターミナルから
pythot
import cv2
を実行して、エラーが出なければインストールが完了している。