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.