未定義のシンボル:__atomic_fetch_add_8


8

私のラズベリーpiの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()

1
Raspberry Pi Compute Module 3にOpenCVをインポートするときに同じ問題が発生するので、少なくとも私たちだけではありません。
ロブスモールシャー

事はそれはターミナルで動作しますが、thonny ideでは動作しません。
Jess Elardo

1
このOpenCV問題の回避策は、LD_PRELOAD環境変数(これはPythonの変数とは異なります)を設定して、欠落しているライブラリーをロードすることです:LD_PRELOAD = / usr / lib / arm-linux-gnueabihf / libatomic.so .1残念ながら、Thonny IDEで環境変数を設定する方法が見つかりませんでした。
ロブ・スモールシャー

PiWheels OpenCVビルドでこのGitHubの問題に従うことをお勧めします。うまくいけば、OpenCVホイールの修正バージョンが間もなく登場します。github.com/piwheels/packages/issues/59
Rob Smallshire '10 / 11/19

回答:


4

適切なバージョンでOpenCV contribを使用してください。

pip install opencv-contrib-python==4.1.0.25

この投稿の最後にある回答を参照してください。


これはRPi 4でうまくいきました。イスマエルの答えを試す機会がありませんでした。
Robert Bain

2

opencvをpipインストールする場合
は、仮想環境で試してください。

「pip install opencv-contrib-python == 3.4.3.18」


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

そしてこれは彼が書いたものです:-

私はバスターでRP4、1GBメモリのチュートリアルをフォローしています。

Pythonコンソール(ステップ5)からcv2のインストールを確認すると、完全なコンパイルであるステップ4(a)の後に次のエラーが表示されました。

ImportError:/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so:undefined symbol:__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(デフォルト、Apr 3 2019、05:39:12)[GCC 8.2.0] Linuxの場合詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。

輸入CV2印刷(CV2。バージョン)4.1.1

これが同じ問題のある人を助けることを願っています…

J

また、私が同じ作家のために別のtuotrailをフォローするときのur情報については、問題なくここで問題なく機能しており、ここにリンクがあります:-

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

私はまだpythonとラズベリーpiで15日間の経験がありますので、どうぞよろしくお願いいたします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.