未定义符号:__atomic_fetch_add_8

时间:2019-11-09 11:37:16

标签: python opencv

我正在尝试在树莓派上的thonny python ide上测试我的picamera,但出现错误:

Traceback (most recent call last):
  File "/home/pi/Documents/Camera_test.py", line 2, in <module>
    import cv2
  File "/usr/lib/python3/dist-packages/thonny/backend.py", line 305, in _custom_import
    module = self._original_import(*args, **kw)
  File "/home/pi/.local/lib/python3.7/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
  File "/usr/lib/python3/dist-packages/thonny/backend.py", line 305, in _custom_import
    module = self._original_import(*args, **kw)
ImportError: /home/pi/.local/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8

我已经尝试过寻找可能的解决方案,但无法做到,因为我无法理解他们想对-latomic说些什么。我对此很陌生。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height

while(True):
    ret, frame = cap.read()
    frame = cv2.flip(frame, -1) # Flip camera vertically
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)

    k = cv2.waitKey(30) & 0xff
    if k == 27: # press 'ESC' to quit
        break

cap.release()
cv2.destroyAllWindows()

4 个答案:

答案 0 :(得分:2)

在遵循本教程的同时,我也面临着同样的问题 https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

在此链接中的评论已解决,也感谢他为我解决了同样的问题:- https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/#comment-572080

这就是他所困扰的:-

我正在使用Buster上的RP4、1GB内存的教程。

当从Python控制台验证cv2安装(步骤5)时,在执行完整的编译步骤4(a)之后,我看到以下错误:

ImportError:/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so:未定义符号:__atomic_fetch_add_8

我可以通过以下步骤解决该问题:

1 – $ sudo find / -type f -name‘ atom .so *” /usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0

2 – LD_PRELOAD = / usr / lib / arm-linux-gnueabihf / libatomic.so.1.2.0 python3

3 – Python 3.7.3(默认值,2019年4月3日,05:39:12) Linux上的[GCC 8.2.0] 输入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。

  
    
      

导入cv2       打印(cv2。版本)       4.1.1

    
  

希望这可以帮助遇到相同问题的任何人……

J

也为您提供信息 当我为同一个作者跟随另一个tuotrail时,它可以正常工作并且没有问题,这里是链接:-

https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/

我仍然有15天的python和raspberry pi经验 很抱歉出现任何错误 问候

答案 1 :(得分:1)

如果您通过pip安装opencv,请尝试
 在您的虚拟环境中

“ pip install opencv-contrib-python == 3.4.3.18”

答案 2 :(得分:0)

使用具有正确版本的OpenCV contrib。

pip install opencv-contrib-python==4.1.0.25

请参阅this帖子末尾的答案。

答案 3 :(得分:0)

执行以下步骤对我来说效果很好:

在Raspberry Pi上安装OpenCV

  1. sudo apt-get更新

  2. sudo apt-get install libhdf5-dev -y && sudo apt-get install libhdf5-serial-dev -y && sudo apt-get install libatlas-base-dev -y && sudo apt-get install libjasper- dev -y && sudo apt-get安装libqtgui4 -y && sudo apt-get安装libqt4-test -y

  3. pip3 install --user opencv-contrib-python

  4. pip安装opencv-python

测试OpenCV

要检查OpenCV是否已正确安装,请尝试通过键入以下命令导入OpenCV: 运行python shell python3

然后输入: 导入cv2

如果未显示任何错误,则表明安装成功!

要知道您具有哪个版本的OpenCV,请键入以下命令: cv2。版本

推荐的可选库

sudo apt安装libatlas3-base sudo apt-get install python3-numpy

sudo apt更新 须藤apt-get install python3-matplotlib -y