ImportError: libSM.so.6: cannot open shared object file: No such file or directory

ImportError: libSM.so.6: cannot open shared object file: No such file or directory

尝试导入 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 的新 Colaboratory tool. Notebook is here: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

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

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

对于 CentOS,运行 这个: sudo yum install libXext libSM libXrender

可能是您的 python-opencv 版本有问题。最好将您的版本降级到不包含任何 GUI 依赖项的 3.3.0.9。在 GitHub 上发现了同样的问题,这里是 link 到 answer

您需要添加 sudo 。我执行了以下操作来安装它:

sudo apt-get install libsm6 libxrender1 libfontconfig1

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

sudo python3 -m pip install opencv-contrib-python

终于搞定了!

我无法在 Google 云平台上的 Anaconda-Jupyter 笔记本 运行ning 上 Ubuntu 上安装 cv2。但是我找到了一种方法如下:

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

 sudo apt-get install libsm6 libxrender1 libfontconfig1

安装完成后打开 Jupyter notebook 并运行执行以下命令:

!pip install opencv-contrib-python

注意:我尝试运行这个命令:"sudo python3 -m pip install opencv-contrib-python"但它显示错误。但是上面的命令对我有用。

现在刷新notebook页面,在notebook中运行ning import cv2查看是否安装。

现在有一个 opencv-python 的无头版本,它删除了图形依赖项(如 libSM)。您可以在导致此的 releases page (and the GitHub issue 上看到正常/无头版本);安装时加上-headless即可,例如

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

我在 python:3.7-slim docker 框中遇到了与 openCV 类似的问题。以下对我有用:

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

请看看这是否有帮助!

我在 docker 中遇到了同样的问题,these steps 为我工作:

apt update

然后:

apt install libsm6 libxext6 libxrender-dev

我在使用 heroku 时遇到了同样的错误,请按照以下步骤操作:

在您的存储库中添加一个名为 Aptfile 的文件 并在该 Aptfile

中包含要安装的 apt 包名称列表

(我的情况)类似这样

libsm6
libxrender1
libfontconfig1
libice6

现在尝试将代码推送到 heroku。这将完成工作。

或者你仍然可以参考这个blog