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.