undefiniertes Symbol: __atomic_fetch_add_8

8

Ich versuche meine Picamera auf Thonny Python Ide auf meinem Himbeer-Pi zu testen, aber ich erhalte eine Fehlermeldung:

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

Ich habe bereits versucht, nach möglichen Lösungen zu suchen, konnte es aber nicht, weil ich nicht verstehen kann, was sie über -latomic sagen wollten. Ich bin ziemlich neu in diesem Bereich.

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
quelle
1
Für das, was es wert ist, habe ich das gleiche Problem beim Importieren von OpenCV auf mein Raspberry Pi Compute Module 3, also sind wir zumindest nicht allein.
Rob Smallshire
Die Sache ist, dass es auf dem Terminal funktioniert, aber nicht auf Thonny Ide.
Jess Elardo
1
Die Problemumgehung für dieses OpenCV-Problem besteht darin, die Umgebungsvariable LD_PRELOAD (dies ist nicht mit einer Variablen in Python identisch) festzulegen, damit die fehlende Bibliothek geladen wird: LD_PRELOAD = / usr / lib / arm-linux-gnueabihf / libatomic.so .1 Leider konnte ich in der Thonny-IDE keine Möglichkeit finden, Umgebungsvariablen festzulegen.
Rob Smallshire
Ich empfehle Ihnen, dieses GitHub-Problem beim PiWheels OpenCV-Build zu befolgen. Hoffentlich wird bald eine feste Version des OpenCV-Rads erscheinen. github.com/piwheels/packages/issues/59
Rob Smallshire

Antworten:

4

Verwenden Sie OpenCV Contrib mit der richtigen Version.

pip install opencv-contrib-python==4.1.0.25

Siehe Antwort am Ende dieses Beitrags.

Cristhoper
quelle
Dies funktionierte für mich auf einem RPi 4. Ich hatte keine Gelegenheit, Ismaels Antwort zu versuchen.
Robert Bain
2

Wenn Sie opencv per Pip installieren, versuchen Sie es
in Ihrer virtuellen Umgebung

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

Laksh
quelle
2

Ich hatte das gleiche Problem auch, als ich diesem Totorial folgte: https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

in Kommentaren wird in diesem Link gelöst und auch für mich dank ihm gelöst: - https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and -raspbian-buster / # comment-572080

und das schreibt er: -

#

Ich folge dem Tutorial mit RP4, 1 GB Speicher, auf Buster.

Beim Überprüfen der cv2-Installation über die Python-Konsole (Schritt 5) wurde nach dem Ausführen von Schritt 4 (a), der vollständigen Kompilierung, der folgende Fehler angezeigt:

ImportError: /home/pi/.virtualenvs/cv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefiniertes Symbol: __atomic_fetch_add_8

Ich konnte das Problem mit den folgenden Schritten beheben:

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 (Standard, 3. April 2019, 05:39:12) [GCC 8.2.0] unter Linux Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.

cv2 print importieren (cv2. version ) 4.1.1

Hoffe, das hilft jedem mit dem gleichen Problem ...

J.

#

Auch zu Ihrer Information, wenn ich einem anderen Tuotrail für denselben Autor folge, hat es bei mir ohne Probleme funktioniert. Hier ist der Link: -

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

Ich bin immer noch 15 Tage Erfahrung in Python und Himbeer-Pi, also entschuldige mich für jeden Fehler in Bezug auf Advane

Ismael Nabil
quelle