在 PI3 上安裝PYTHON3 的 OPENCV 後,從 Python3 去執行 import cv2 時會出現下面的錯誤訊息
pi@raspberrypi:~ $ python3.7
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.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 “/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
>>>
執行載入文件
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
root@raspberrypi:/home/pi# python3
Python 3.4.3 |Continuum Analytics, Inc.| (default, Aug 21 2015, 00:53:08)
[GCC 4.6.3] on linux
Type “help", “copyright", “credits" or “license" for more information.
>>> import cv2
Traceback (most recent call last):
File “<stdin>", line 1, in <module>
ImportError: No module named ‘cv2’
>>>
KeyboardInterrupt
>>>
root@raspberrypi:/home/pi# python3.7
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type “help", “copyright", “credits" or “license" for more information.
>>> import cv2
>>> cv2.__version__
‘4.1.1’
>>>
問題已解決
將PATH加入到./bashrc
vi ~./bashrc
加入export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
讓每次啟動都去行加載這個 PATH