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, здесь ссылка на ответ .

de_billa_
источник
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в блокноте.

Йогеш
источник
0

У меня была такая же проблема, dockerи эти шаги сработали для меня:

apt update

затем:

apt install libsm6 libxext6 libxrender-dev
Хоссейн Хаяти
источник