ImportError: libSM.so.6: tidak dapat membuka file objek bersama: File atau direktori tersebut tidak ada

110

Saat mencoba mengimpor OpenCV, menggunakan import cv2saya mendapatkan kesalahan berikut:

/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

Tidak yakin bagaimana cara memperbaikinya - mencoba bermain-main dengan alat Colaboratory Google yang baru . Notebook ada di sini: https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

Dmitry Rastorguev
sumber

Jawaban:

135

Ini memperbaiki masalah dengan menjadikannya sebagai dua baris pertama dari skrip:

!pip install opencv-python
!apt update && apt install -y libsm6 libxext6
!apt-get install -y libxrender-dev
Dmitry Rastorguev
sumber
1
bisakah kamu mengelak? dari scirpt yang mana? cv2 / __ init__.py?
The Gr8 Adakron
26
@ TheGr8Adakron,sudo apt-get install libsm6
Alexander Lubyagin
63
Hanya berbagi sehingga dapat membantu siapa saja; Saya juga harus lari sudo apt-get install -y libxrender-devuntuk mengatasi libXrenderkesalahan (yang diikuti oleh libsm6)
Akash Goyal
57

Anda perlu menambahkan sudo. Saya melakukan hal berikut untuk menginstalnya:

sudo apt-get install libsm6 libxrender1 libfontconfig1

dan kemudian melakukan itu (opsional! mungkin Anda tidak membutuhkannya)

sudo python3 -m pip install opencv-contrib-python

AKHIRNYA menyelesaikannya!

Soufiane Chami
sumber
13
hanya menggunakan apt-get install libsm6 libxrender1 libfontconfig1bekerja untuk saya
Jiloc
49

Untuk CentOS, jalankan ini: sudo yum install libXext libSM libXrender

Caesar
sumber
Ini menyebabkan segfault saat menjalankan R pada baris perintah seperti yang diinstal oleh instalasi Anaconda R. saya.
blahblahetcetc
30

Sekarang ada versi headless opencv-pythonyang menghapus dependensi grafis (seperti libSM). Anda dapat melihat versi normal / headless di halaman rilis (dan masalah GitHub yang mengarah ke ini); tambahkan saja -headlesssaat menginstal, misalnya,

pip install opencv-python-headless
# also contrib, if needed
pip install opencv-contrib-python-headless
Nathan
sumber
Saya mengalami kesalahan ImportError: libSM.so.6: cannot open shared object file: No such file or directorysetelah menambahkan tanpa kepala, itu hilang
Vadim
juga jika ada yang mencari solusi untuk menjalankan OpenCV di lingkungan Google App Engine Fleksibel, inilah solusinya.
Oğulcan Çelik
21

Mungkin masalahnya ada pada python-opencvversi Anda . Lebih baik menurunkan versi Anda ke 3.3.0.9 yang tidak menyertakan dependensi GUI apa pun. Pertanyaan yang sama ditemukan di GitHub di sini tautan ke jawabannya .

de_billa_
sumber
2
pip install 'opencv-contrib-python == 3.3.0.9' (setelah menghapus yang sekarang, tentu saja: pip uninstall opencv-contrib-python) - github.com/skvark/opencv-python/issues/44
Alex Punnen
2

Saya menghadapi masalah serupa dengan openCV di python:3.7-slimkotak buruh pelabuhan. Berikut triknya untuk saya:

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

Silakan lihat apakah ini membantu!

utopia
sumber
@SaurabhGupta Terima kasih, Anda benar. Baru saja diperbaiki.
Utopia
0

Saya tidak dapat menginstal cv2 di notebook Anaconda-Jupyter yang berjalan di Ubuntu di Google Cloud Platform. Tetapi saya menemukan cara untuk melakukannya sebagai berikut:

Jalankan perintah berikut dari terminal ssh dan ikuti instruksi:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

Setelah terinstal Buka notebook Jupyter dan jalankan perintah berikut:

!pip install opencv-contrib-python

Catatan: Saya mencoba menjalankan perintah ini: "sudo python3 -m pip install opencv-contrib-python" tetapi itu menunjukkan kesalahan. Tetapi perintah di atas berhasil untuk saya.

Sekarang segarkan halaman buku catatan dan periksa apakah sudah diinstal atau tidak dengan menjalankan import cv2di buku catatan.

Yogesh
sumber
0

Saya memiliki masalah yang sama dockerdan langkah-langkah ini berhasil untuk saya:

apt update

kemudian:

apt install libsm6 libxext6 libxrender-dev
hossein hayati
sumber