ImportError:libSM.so.6:无法打开共享库文件:没有这样的文件或目录


110

尝试导入OpenCV时,使用import cv2我得到以下错误:

/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

不确定如何解决-尝试使用Google的新协作工具。笔记本在这里:https : //drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

Answers:


135

通过将其作为脚本的前两行来解决此问题:

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

1
你可以大声疾呼吗?哪个脚本?cv2 / __ init__.py?
Gr8 Adakron

26
@ TheGr8Adakron,sudo apt-get install libsm6
亚历山大·卢比亚

63
只是分享,以便对任何人都有帮助;我还不得不运行sudo apt-get install -y libxrender-dev以解决libXrender错误(之后是libsm6)
Akash Goyal,

57

您需要添加sudo。我做了以下事情来安装它:

sudo apt-get install libsm6 libxrender1 libfontconfig1

然后这样做(可选!也许您将不需要它)

sudo python3 -m pip install opencv-contrib-python

终于完成了!


13
只是apt-get install libsm6 libxrender1 libfontconfig1对我
有用-Jiloc

49

对于CentOS,运行以下命令: sudo yum install libXext libSM libXrender


这在我的Anaconda R安装程序安装的命令行上运行R时引起了段错误。
blahblahetcetc

30

现在有一个无头版本,opencv-python该版本删除了图形依赖性(如libSM)。您可以在发布页面上看到普通版/无头版(以及导致该问题GitHub问题);只需-headless在安装时添加,例如

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

ImportError: libSM.so.6: cannot open shared object file: No such file or directory一旦添加了无头内容,我就出错了
-Vadim

另外,如果有人在寻找在Google App Engine Flexible环境上运行OpenCV的解决方案,那么这就是解决方案。
Oğulcan切利克

21

可能是您的问题 python-opencv版本。最好将您的版本降级到3.3.0.9,其中不包含任何GUI依赖项。在GitHub的此处找到了相同的问题的答案链接。


2
pip install'opencv-contrib-python == 3.3.0.9'(删除当前版本后,当然:pip install
Alex Punnen

2

我在python:3.7-slimdocker盒上遇到了openCV的类似问题。以下对我有用:

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

请查看是否有帮助!


@SaurabhGupta谢谢,你是对的。刚刚更正。
乌托邦

0

我无法在Google Cloud Platform的Ubuntu上运行的Anaconda-Jupyter笔记本上安装cv2。但是我找到了一种方法,如下所示:

从ssh终端运行以下命令,并按照说明进行操作:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

安装完毕后,打开Jupyter笔记本并运行以下命令:

!pip install opencv-contrib-python

注意:我尝试运行此命令:“ sudo python3 -m pip install opencv-contrib-python”,但显示错误。但是以上命令对我有用。

现在刷新笔记本页面,并通过import cv2在笔记本中运行检查它是否已安装。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.