代码之家  ›  专栏  ›  技术社区  ›  Dmitry Rastorguev

重点:libSM。所以6: 无法打开共享对象文件:没有此类文件或目录

  •  139
  • Dmitry Rastorguev  · 技术社区  · 6 年前

    尝试导入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
    

    不知道该如何解决这个问题——尝试使用谷歌的新产品 Colaboratory 工具笔记本在这里: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

    9 回复  |  直到 6 年前
        1
  •  171
  •   Faizan Amin Dmitry Rastorguev    4 年前

    这通过将其作为脚本的前两行来修复问题:

    !pip install opencv-python
    !apt update && apt install -y libsm6 libxext6
    !apt-get install -y libxrender-dev
    
        2
  •  66
  •   Giacomo1968    4 年前

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

    sudo apt-get install libsm6 libxrender1 libfontconfig1
    

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

    sudo python3 -m pip install opencv-contrib-python
    

    终于完成了!

        3
  •  63
  •   Caesar    6 年前

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

        4
  •  43
  •   Nathan    5 年前

    现在有一个无头版本的 opencv-python 这将删除图形依赖项(如libSM)。您可以在屏幕上看到普通/无头版本 releases page (和 GitHub issue 导致这种情况);只需添加 -headless 安装时,例如。,

    pip install opencv-python-headless
    # also contrib, if needed
    pip install opencv-contrib-python-headless
    
        5
  •  21
  •   Raptor    5 年前

    可能是你的问题 python-opencv 版本最好将您的版本降级到3.3.0.9版本,该版本不包括任何GUI依赖项。在GitHub上发现了相同的问题,这里是指向 answer .

        6
  •  9
  •   hossein hayati    4 年前

    我也有同样的问题 docker these steps 为我工作:

    apt update
    

    然后:

    apt install libsm6 libxext6 libxrender-dev
    
        7
  •  2
  •   Utopia    5 年前

    我在openCV上遇到了类似的问题 python:3.7-slim docker box。以下是我的诀窍:

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

    请看看这是否有帮助!

        8
  •  0
  •   Yogesh Awdhut Gadade    5 年前

    我无法在谷歌云平台上运行Ubuntu的AnacondaJupyter笔记本上安装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 在笔记本上。

        9
  •  0
  •   Puneeth Regonda    3 年前

    我在使用heroku时也遇到了同样的错误,请遵循以下步骤:

    在您的repo中添加名为Aptfile的文件 并包括要安装在该apt文件中的apt包名称列表

    (我的情况)是这样的

    libsm6
    libxrender1
    libfontconfig1
    libice6
    

    现在尝试将代码推送到heroku。这就行了。

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