docker中import cv2时提示libSM.so.6 错误的解决

非常适用于解决依赖问题

在docker中安装了opencv:pip install opencv-python 引入时提示如下 

ImportError Traceback (most recent call last)
<ipython-input-2-d6fad459d9ee> in <module>
     17 import time
     18 import pickle
---> 19 import cv2
     20 import json
     21 import xml

/usr/local/lib/python3.6/dist-packages/cv2/__init__.py in <module>
      3 import sys
      4 
----> 5 from .cv2 import *
      6 from .data import *
      7 

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

找不到libSM.so.6这个共享库,

1 安装apt-file来寻找这个共享库

apt-get update 
apt-get install apt-file 
apt-file update
apt-file search libSM.so.6

root@84c54a55d898:/workspace# apt-file search libSM.so.6
libsm6: /usr/lib/x86_64-linux-gnu/libSM.so.6
libsm6: /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1

在这个目录中我没找到这两个文件,应该就是说缺少的意思吧?

2 apt-get install libsm6

后面连续提示了好几个:都是安装

apt-get install libxrender1
apt-get install libxext6

然后就ok了

 

在安装应用时,经常会碰到缺少各种文件、依赖等问题,例如缺少.so文件。Ubuntu中提供了一个强大的工具apt-file来查找依赖。常用的两大功能是:

搜索缺少的文件

apt-file会列出包含该文件的包,发现需要的包是python-opencv,然后安装python-opencv。

apt-file search cv.py

列出包中的文件

apt-file list [package name]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值