経緯
RaspberryPiの既存のPythonでopencv入れると、/usr/local/lib/python3.5/dist-packages/cv2 の中にcv2.cpython-35m-arm-linux-gnueabihf.so が入るんだけど、pyenvのpython(3.4.1)の中には違うやつが入ってて動かしてみると、色々無いよと言われ一つずつ足りないやつを入れてたけど落ちていない...
て事で、シンボリック貼ればええやんとなった。
環境
RaspberryPi3b+
stretch(Release 9.9)
Python3.5(元々)
Python3.4(pyenv)
導入
まずは既存のpythonの方にopencvを入れる
前処理
$ sudo apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
$ sudo pip3 install opencv-python
・
・
・
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
なんか、色々怒られた
pip3 install opencv-python
出来た。もうわからん
これで出来なければstack overflow
実行前処理
$ sudo apt-get install -y libcblas-dev libatlas3-base libilmbase12 libopenexr22 libgstreamer1.0-0 libqtgui4 libqttest4-perl
実行
$ python3
>>> import cv2
>>>
通った
pyenvでも使えるようにしよう
まずはシンボリックを貼る ここでcv2.soとすることが大事
ln -s /usr/local/lib/python3.5/dist-packages/cv2/cv2.cpython-35m-arm-linux-gnueabihf.so /home/pi/.pyenv/versions/3.4.1/lib/python3.4/site-packages/cv2.so
あとは、opencv-pythonを入れた際についでに入るsixパッケージなどのpathを追加して再起動
pathの追加の仕方(下の方に書いてる)
$ pyenv global 3.4.1
$ python
>>> import cv2
はい、終わり