ImportError: libSM.so.6: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type


112

Lorsque vous essayez d'importer OpenCV, import cv2j'obtiens l'erreur suivante en utilisant :

/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

Je ne sais pas comment résoudre ce problème - essayez de jouer avec le nouvel outil de collaboration de Google . Notebook est ici: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

Réponses:


138

Cela a résolu le problème en l'affichant comme les deux premières lignes du script:

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

1
pouvez-vous élobrer? de quel scirpt? cv2 / __ init__.py?
The Gr8 Adakron

27
@ TheGr8Adakron,sudo apt-get install libsm6
Alexander Lubyagin

63
Juste partager pour que cela puisse aider n'importe qui; J'ai également dû courir sudo apt-get install -y libxrender-devpour résoudre une libXrendererreur (qui a été suivie par libsm6)
Akash Goyal

57

Vous devez ajouter sudo. J'ai fait ce qui suit pour l'installer:

sudo apt-get install libsm6 libxrender1 libfontconfig1

et puis fait ça (facultatif! peut-être que vous n'en aurez pas besoin)

sudo python3 -m pip install opencv-contrib-python

FINALEMENT réussi!


13
juste en utilisant apt-get install libsm6 libxrender1 libfontconfig1travaillé pour moi
Jiloc

50

Pour CentOS, exécutez ceci: sudo yum install libXext libSM libXrender


Cela provoquait une erreur de segmentation lors de l'exécution de R sur la ligne de commande telle qu'installée par mon installation Anaconda R.
blahblahetcetc

30

Il existe maintenant une version headless opencv-pythonqui supprime les dépendances graphiques (comme libSM). Vous pouvez voir la version normale / sans tête sur la page des versions (et le problème GitHub menant à cela); il suffit d'ajouter -headlesslors de l'installation, par exemple,

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

J'avais ImportError: libSM.so.6: cannot open shared object file: No such file or directoryune erreur une fois ajoutée sans tête, c'est parti
Vadim

également si quelqu'un cherche une solution pour exécuter OpenCV sur l'environnement flexible de Google App Engine, c'est la solution.
Oğulcan Çelik

21

Le problème vient peut-être de votre python-opencvversion. Il est préférable de rétrograder votre version à 3.3.0.9 qui n'inclut aucune dépendance d'interface graphique. La même question a été trouvée sur GitHub ici le lien vers la réponse .


2
pip install 'opencv-contrib-python == 3.3.0.9' (après avoir supprimé l'actuel, bien sûr: pip uninstall opencv-contrib-python) - github.com/skvark/opencv-python/issues/44
Alex Punnen

2

J'étais confronté à un problème similaire avec openCV sur la python:3.7-slimboîte de docker. La suite a fait l'affaire pour moi:

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

Veuillez voir si cela aide!


@SaurabhGupta Merci, vous avez raison. Juste corrigé.
Utopia

0

Je n'ai pas pu installer cv2 sur un notebook Anaconda-Jupyter fonctionnant sous Ubuntu sur Google Cloud Platform. Mais j'ai trouvé un moyen de le faire comme suit:

Exécutez la commande suivante à partir du terminal ssh et suivez les instructions:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

Une fois installé, ouvrez le notebook Jupyter et exécutez la commande suivante:

!pip install opencv-contrib-python

Remarque: j'ai essayé d'exécuter cette commande: "sudo python3 -m pip install opencv-contrib-python" mais elle affichait une erreur. Mais la commande ci-dessus a fonctionné pour moi.

Actualisez maintenant la page du bloc-notes et vérifiez s'il est installé ou non en l'exécutant import cv2dans le bloc-notes.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.