LoginSignup
42
29

More than 3 years have passed since last update.

ラズパイでpython3にopencvを入れたらエラーが出た【対処法】

Posted at

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'

たしかにインストール出来ています。

42
29
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
29