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

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

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!


13
hanya menggunakan apt-get install libsm6 libxrender1 libfontconfig1bekerja untuk saya
Jiloc

49

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


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

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 .


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!


@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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.