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

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.


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"


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.