ImportError: libSM.so.6: невозможно открыть файл общих объектов: нет такого файла или каталога


112

При попытке импортировать 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

Ответы:


139

Это устранило проблему, указав его в первых двух строках скрипта:

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

1
ты умеешь говорить? из какого scirpt? cv2 / __ init__.py?
The Gr8 Adakron

27
@ TheGr8Adakron,sudo apt-get install libsm6
Александр Лубягин

63
Просто поделитесь, чтобы это могло помочь кому угодно; Мне также пришлось бежать, sudo apt-get install -y libxrender-devчтобы libXrenderисправить ошибку (за которой последовала libsm6)
Акаш Гоял

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

50

Для CentOS запустите это: sudo yum install libXext libSM libXrender


Это вызвало segfault при запуске R в командной строке, установленной моей установкой Anaconda 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после добавления безголового, она исчезла
Вадим

также, если кто-то ищет решение для запуска OpenCV в гибкой среде Google App Engine, это решение.
Огулкан Челик,

21

Возможно проблема в вашей python-opencvверсии. Лучше понизить версию до 3.3.0.9, которая не включает никаких зависимостей графического интерфейса. Тот же вопрос был найден на GitHub, здесь ссылка на ответ .


2
pip install 'opencv-contrib-python == 3.3.0.9' (после удаления текущего, конечно: pip uninstall opencv-contrib-python) - github.com/skvark/opencv-python/issues/44
Alex Punnen

2

Я столкнулся с аналогичной проблемой с openCV в python:3.7-slimдокере. Следующее помогло мне:

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

Пожалуйста, посмотрите, поможет ли это!


@SaurabhGupta Спасибо, вы правы. Только что поправил.
Утопия

0

Мне не удалось установить cv2 на ноутбук Anaconda-Jupyter, работающий на Ubuntu на облачной платформе Google. Но я нашел способ сделать это следующим образом:

Выполните следующую команду из терминала ssh и следуйте инструкциям:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

После его установки Откройте блокнот Jupyter и выполните следующую команду:

!pip install opencv-contrib-python

Примечание. Я попытался запустить эту команду: «sudo python3 -m pip install opencv-contrib-python», но она показывала ошибку. Но указанная выше команда работала для меня.

Теперь обновите страницу блокнота и проверьте, установлен он или нет, запустив import cv2в блокноте.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.