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

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

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!


13
solo usar apt-get install libsm6 libxrender1 libfontconfig1funcionó para mí
Jiloc

49

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


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

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 .


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!


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.