尝试导入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工具。笔记本在这里:https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing
答案 0 :(得分:77)
通过将其作为脚本的前两行来解决问题:
!pip install opencv-python
!apt update && apt install -y libsm6 libxext6
答案 1 :(得分:26)
您需要添加sudo。我做了以下安装工作:
sudo apt-get install libsm6 libxrender1 libfontconfig1
然后做到了
sudo python3 -m pip install opencv-contrib-python
终于完成了!
答案 2 :(得分:18)
对于CentOS,运行:
sudo yum install libXext libSM libXrender
答案 3 :(得分:14)
问题在于您的python-opencv
版本。将版本降级到3.3.0.9会更好,因为它不包含任何GUI依赖项。同样的问题在GitHub上找到了answer的链接。
答案 4 :(得分:4)
现在有opencv-python
的无头版本,它删除了图形依赖性(例如libSM)。您可以在releases page上看到普通/无头版本(以及导致该问题的GitHub issue);只需在安装时添加-headless
,例如
pip install opencv-python-headless
# also contrib, if needed
pip install opencv-contrib-python-headless
答案 5 :(得分:3)
答案 6 :(得分:1)
我在python:3.7-slim
码头箱上遇到了openCV的类似问题。以下对我有用:
apt-get install build-essential libglib2.0-0 libsm6 libxext6 libxrender-dev
请查看是否有帮助!
答案 7 :(得分: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
来检查它是否已安装。
答案 8 :(得分:0)
我在使用 heroku 时遇到了同样的错误,请按照下列步骤操作:
在你的仓库中添加一个名为 Aptfile 的文件 并包含要安装在该 Aptfile 中的 apt 包名称列表
在(我的情况)中是这样的
libsm6
libxrender1
libfontconfig1
libice6
现在尝试将代码推送到 heroku。这将完成工作。
或者你仍然可以参考这个blog