umi no mono tomo

海の物とも山の物ともつかないものを、1.計測して、 2.モデルを構築し, 3.現象をよく説明する法則を数学的手法を用いて記述することにより, 対象から有用な情報を取り出しもって情報技術の活用を促進することをねらう.

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

を実行して、エラーが出なければインストールが完了している。