ImportError: libSM.so.6: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis


110

Beim Versuch, OpenCV zu importieren, wird import cv2folgende Fehlermeldung angezeigt:

/usr/local/lib/python2.7/dist-packages/cv2/__init__.py in <module>()
      7 
      8 # make IDE's (PyCharm) autocompletion happy
----> 9 from .cv2 import *
     10 
     11 # wildcard import above does not import "private" variables like __version__

ImportError: libSM.so.6: cannot open shared object file: No such file or directory

Ich bin mir nicht sicher, wie ich das beheben soll. Ich versuche, mit dem neuen Colaboratory- Tool von Google herumzuspielen . Das Notizbuch finden Sie hier: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

Antworten:


135

Dies behebt das Problem, indem es als erste zwei Zeilen des Skripts verwendet wird:

!pip install opencv-python
!apt update && apt install -y libsm6 libxext6
!apt-get install -y libxrender-dev

1
kannst du elobrate? von welchem ​​scirpt? cv2 / __ init__.py?
— Der Gr8 Adakron

26
@ TheGr8Adakron,sudo apt-get install libsm6
— Alexander Lubyagin

63
Nur teilen, damit es jedem helfen kann; Ich musste auch laufen sudo apt-get install -y libxrender-dev, um den libXrenderFehler zu beheben (gefolgt von libsm6)
— Akash Goyal

57

Sie müssen sudo hinzufügen. Ich habe Folgendes getan, um es zu installieren:

sudo apt-get install libsm6 libxrender1 libfontconfig1

und dann das gemacht (optional! vielleicht brauchst du es nicht)

sudo python3 -m pip install opencv-contrib-python

ENDLICH fertig!


13
Nur mit apt-get install libsm6 libxrender1 libfontconfig1für mich gearbeitet
— Jiloc

49

Führen Sie für CentOS Folgendes aus: sudo yum install libXext libSM libXrender


Dies verursachte einen Segfault, wenn R in der Befehlszeile ausgeführt wurde, wie von meiner Anaconda R-Installation installiert.
— blahblahetcetc

30

Es gibt jetzt eine kopflose Version opencv-python, die die grafischen Abhängigkeiten entfernt (wie libSM). Sie können die normale / kopflose Version auf der Release-Seite sehen (und das GitHub-Problem , das dazu führt); Fügen Sie einfach -headlessbei der Installation hinzu, z.

pip install opencv-python-headless
# also contrib, if needed
pip install opencv-contrib-python-headless

Ich hatte Fehler ImportError: libSM.so.6: cannot open shared object file: No such file or directoryeinmal kopflos hinzugefügt, es ist weg
— Vadim

Auch wenn jemand nach einer Lösung sucht, um OpenCV in einer flexiblen Umgebung von Google App Engine auszuführen, ist dies die Lösung.
— Oğulcan Çelik

21

Möglicherweise liegt das Problem bei Ihrer python-opencvVersion. Es ist besser, Ihre Version auf 3.3.0.9 herunterzustufen, die keine GUI-Abhängigkeiten enthält. Gleiche Frage wurde auf GitHub hier der Link zur Antwort gefunden .


2
pip install 'opencv-contrib-python == 3.3.0.9' (nach dem Entfernen des aktuellen natürlich: pip deinstalliere opencv-contrib-python) - github.com/skvark/opencv-python/issues/44
— Alex Punnen

1

Ich hatte ein ähnliches Problem mit openCV auf der python:3.7-slimDocker-Box. Folgendes hat den Trick für mich getan:

apt-get install build-essential libglib2.0-0 libsm6 libxext6 libxrender-dev

Bitte sehen Sie, ob dies hilft!


@ SaurabhGupta Danke, du hast recht. Nur korrigiert.
— Utopia

0

Ich konnte cv2 nicht auf einem Anaconda-Jupyter-Notebook installieren, das unter Ubuntu auf der Google Cloud Platform ausgeführt wird. Aber ich habe einen Weg gefunden, dies wie folgt zu tun:

Führen Sie den folgenden Befehl vom ssh-Terminal aus und befolgen Sie die Anweisungen:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

Einmal installiert Öffnen Sie das Jupyter-Notizbuch und führen Sie den folgenden Befehl aus:

!pip install opencv-contrib-python

Hinweis: Ich habe versucht, diesen Befehl auszuführen: "sudo python3 -m pip installiere opencv-contrib-python", aber es wurde ein Fehler angezeigt. Aber der obige Befehl hat bei mir funktioniert.

Aktualisieren Sie nun die Notebook-Seite und überprüfen Sie, ob sie installiert ist oder nicht, indem Sie sie import cv2im Notebook ausführen.


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.