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.