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()
Jess Elardo
fuente
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.

cristhoper
fuente
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"

laksh
fuente
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

Ismael Nabil
fuente