símbolo indefinido: __atomic_fetch_add_8


8

Estoy tratando de probar mi picamera en thonny python ide en mi raspberry pi pero recibo un error:

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

Ya he intentado buscar posibles soluciones, pero no pude hacerlo porque no puedo entender lo que estaban tratando de decir algo sobre -latomic. Soy bastante nuevo en esto.

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()

1
Por lo que vale, estoy teniendo el mismo problema al importar OpenCV en mi Raspberry Pi Compute Module 3, así que al menos no estamos solos.
— Rob Smallshire el

La cuestión es que funciona en la terminal, pero no en thonny ide.
— Jess Elardo

1
La solución para este problema de OpenCV es establecer la variable de entorno LD_PRELOAD (esto no es lo mismo que una variable en Python) para que se cargue la biblioteca que falta: LD_PRELOAD = / usr / lib / arm-linux-gnueabihf / libatomic.so .1 Desafortunadamente, no pude encontrar una manera de establecer variables de entorno en Thonny IDE.
— Rob Smallshire

Le recomiendo que siga este problema de GitHub en la compilación PiWheels OpenCV. Con suerte, pronto se lanzará una versión fija de la rueda OpenCV. github.com/piwheels/packages/issues/59
— Rob Smallshire

Respuestas:


4

Use OpenCV contrib con la versión correcta.

pip install opencv-contrib-python==4.1.0.25

Ver respuesta al final de esta publicación.


Esto funcionó para mí en un RPi 4. No tuve la oportunidad de probar la respuesta de Ismael.
— Robert Bain

2

Si pip instala opencv, intente
en su entorno virtual

"pip install opencv-contrib-python == 3.4.3.18"


2

Estaba enfrentando el mismo problema también mientras seguía este https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

en los comentarios se resuelve en este enlace y también me resuelven lo mismo gracias a él: - https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and -raspbian-buster / # comment-572080

y esto es lo que él escribe:

# #

Estoy siguiendo el tutorial con RP4, memoria de 1 gb, en Buster.

Estaba viendo el siguiente error después de seguir el paso 4 (a), la compilación completa, al verificar la instalación de cv2 desde la consola de Python (paso 5):

ImportError: /home/pi/.virtualenvs/cv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: símbolo indefinido: __atomic_fetch_add_8

Pude resolver el problema con los siguientes pasos:

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 (predeterminado, 3 de abril de 2019, 05:39:12) [GCC 8.2.0] en Linux Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.

import cv2 print (cv2. version ) 4.1.1

Espero que esto ayude a cualquiera con el mismo problema ...

J

# #

También para su información cuando sigo otro tuotrail para el mismo escritor, funcionó bien conmigo sin problemas aquí está el enlace:

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

Todavía tengo 15 días de experiencia en Python y Raspberry Pi, así que perdón por cualquier error en lo que respecta a Advane

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.