opencvをインストールもアンインストールも上手く出来ず困っていたところなんとかインストールすることが出来たので,経緯を書きます。
エラー状況
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: /home/pi/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
opencvの入れ方
まずRaspberry Pi + Python 3 に OpenCV 3 をなるべく簡単にインストールするをもとに
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev
によりopencvで用いるライブラリをインストールします。
ここでsudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
はバージョンにより変更があるようで
エラーが出る場合はsudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-***
の***を変えると突破できるかもしれません。
次に
sudo pip3 --default-timeout=1000 install opencv-python
によりopencvを入れます。
この状態で実行すると上記エラーが出てしまいました
エラーの突破方法
こちらで同じエラーがあったので
張ってあったリンクの先を実行しました。
まずターミナルでこちらを実行
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
次にvimで編集
vim.tiny .bashrc
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 #この一文を追加
vimはa
で編集モードESC
からの:wq
で保存して終了です。
ミスしたらESC
からの:q!
で保存せず終了。
最後に
source .bashrc
で適用させます
確認してみます
$ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.1.1'
たしかにインストール出来ています。