🫥

ラズパイのpython3でOpenCVを使うときにハマったこと

2023/09/27に公開

Raspberry pi 4 modelBでカメラモジュールを使って顔認証システムを作ろうとしてOpenCVを導入しようとしたら2つほどハマったので備忘録

参考:https://www.techlife-hacking.com/?p=2344

何があったのか

ラズパイにOpenCVをビルドしようとしたらばか重くて泣いちゃった

pip install opencv-python
Collecting opencv-contrib-python
  Using cached opencv-contrib-python-4.8.0.76.tar.gz (151.2 MB)
  Installing build dependencies ... ←動かねえ!!!!

解決策

ラズパイ向けのビルドパッケージがあるらしいのでそれを使うことにしました

git clone https://github.com/tech-life-hacking/opencv_python_wheels.git
cd ./opencv_python_wheels
pip install opencv_python-latest-cp39-cp39-linux_armv7l.whl

なんか違う問題が発生した

python3
>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/dist-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/usr/local/lib/python3.9/dist-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: /usr/local/lib/python3.9/dist-packages/cv2/cv2.abi3.so: undefined symbol: __atomic_store

なんやねん

原因

パス設定がおかしいことによるらしい

sudo nano ~/.bashrc

最終行に下の一文を追加する

export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1

再読み込みする

source .bashrc

直った

おわり

Discussion