ImportError: libSM.so.6: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

110

Cuando intento importar OpenCV, import cv2obtengo el siguiente error:

/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

No estoy seguro de cómo solucionar este problema; estoy intentando jugar con la nueva herramienta Colaboratoria de Google . El cuaderno está aquí: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

Dmitry Rastorguev
fuente

Respuestas:

135

Esto solucionó el problema al tenerlo como las dos primeras líneas del script:

!pip install opencv-python
!apt update && apt install -y libsm6 libxext6
!apt-get install -y libxrender-dev
Dmitry Rastorguev
fuente
1
puedes elorar ¿De cuál scirpt? cv2 / __ init__.py?
The Gr8 Adakron
26
@ TheGr8Adakron,sudo apt-get install libsm6
Alexander Lubyagin
63
Solo compartiendo para que pueda ayudar a cualquiera; También tuve que ejecutar sudo apt-get install -y libxrender-devpara resolver el libXrendererror (que fue seguido por libsm6)
Akash Goyal
57

Necesitas agregar sudo. Hice lo siguiente para instalarlo:

sudo apt-get install libsm6 libxrender1 libfontconfig1

y luego hizo eso (¡opcional! tal vez no lo necesite)

sudo python3 -m pip install opencv-contrib-python

¡FINALMENTE lo hice!

Soufiane Chami
fuente
13
solo usar apt-get install libsm6 libxrender1 libfontconfig1funcionó para mí
Jiloc
49

Para CentOS, ejecute esto: sudo yum install libXext libSM libXrender

César
fuente
Esto causó un error de segmentación al ejecutar R en la línea de comando tal como lo instaló mi instalación de Anaconda R.
blahblahetcetc
30

Ahora hay una versión sin cabeza opencv-pythonque elimina las dependencias gráficas (como libSM). Puede ver la versión normal / sin cabeza en la página de lanzamientos (y el problema de GitHub que conduce a esto); solo agregue -headlessal instalar, por ejemplo,

pip install opencv-python-headless
# also contrib, if needed
pip install opencv-contrib-python-headless
Nathan
fuente
Tuve un error ImportError: libSM.so.6: cannot open shared object file: No such file or directoryuna vez que se agregó sin cabeza, se ha ido
Vadim
Además, si alguien busca una solución para ejecutar OpenCV en el entorno flexible de Google App Engine, esta es la solución.
Oğulcan Çelik
21

Puede que el problema esté en tu python-opencvversión. Es mejor degradar su versión a 3.3.0.9, que no incluye ninguna dependencia de GUI. La misma pregunta se encontró en GitHub aquí, el enlace a la respuesta .

de_billa_
fuente
2
pip install 'opencv-contrib-python == 3.3.0.9' (después de eliminar el actual, por supuesto: pip uninstall opencv-contrib-python) - github.com/skvark/opencv-python/issues/44
Alex Punnen
2

Estaba enfrentando un problema similar con openCV en la ventana python:3.7-slimacoplable. Lo siguiente hizo el truco para mí:

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

¡Vea si esto ayuda!

utopía
fuente
@SaurabhGupta Gracias, tienes razón. Solo corregido.
Utopía
0

No pude instalar cv2 en la computadora portátil Anaconda-Jupyter que se ejecuta en Ubuntu en Google Cloud Platform. Pero encontré una manera de hacerlo de la siguiente manera:

Ejecute el siguiente comando desde la terminal ssh y siga las instrucciones:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

Una vez que esté instalado, abra el cuaderno Jupyter y ejecute el siguiente comando:

!pip install opencv-contrib-python

Nota: Intenté ejecutar este comando: "sudo python3 -m pip install opencv-contrib-python" pero mostraba un error. Pero el comando anterior funcionó para mí.

Ahora actualice la página del cuaderno y verifique si está instalado o no ejecutándolo import cv2en el cuaderno.

Yogesh
fuente
0

Tuve el mismo problema dockery estos pasos funcionaron para mí:

apt update

luego:

apt install libsm6 libxext6 libxrender-dev
hossein hayati
fuente