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

Dmitry Rastorguev
quelle

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
Dmitry Rastorguev
quelle
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!

Soufiane Chami
quelle
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

Caesar
quelle
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
Nathan
quelle
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 .

de_billa_
quelle
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!

Utopie
quelle
@ 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.

Yogesh
quelle
0

Ich hatte das gleiche Problem dockerund diese Schritte funktionierten für mich:

apt update

dann:

apt install libsm6 libxext6 libxrender-dev
Hossein Hayati
quelle