ImportError: libSM.so.6: ไม่สามารถเปิดไฟล์อ็อบเจ็กต์ที่แบ่งใช้: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว


113

เมื่อพยายามนำเข้า 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ใหม่ของ Google Notebook อยู่ที่https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

คำตอบ:


143

สิ่งนี้แก้ไขปัญหาโดยกำหนดให้เป็นสองบรรทัดแรกของสคริปต์:

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

1
คุณสามารถคลี่คลาย? scirpt ไหน cv2 / __ init__.py?
Gr8 Adakron

27
@ TheGr8Adakron,sudo apt-get install libsm6
Alexander Lubyagin

63
เพียงแค่แบ่งปันเพื่อให้สามารถช่วยเหลือใครก็ได้ ฉันต้องวิ่งsudo apt-get install -y libxrender-devเพื่อแก้ไขlibXrenderข้อผิดพลาด (ซึ่งตามมาด้วย libsm6)
Akash Goyal

58

คุณต้องเพิ่ม sudo ฉันทำสิ่งต่อไปนี้เพื่อติดตั้ง:

sudo apt-get install libsm6 libxrender1 libfontconfig1

จากนั้นก็ทำ (ไม่บังคับ! บางทีคุณอาจไม่ต้องการ)

sudo python3 -m pip install opencv-contrib-python

ในที่สุดก็สำเร็จ!


13
เพิ่งใช้apt-get install libsm6 libxrender1 libfontconfig1งานสำหรับฉัน
Jiloc

52

สำหรับ CentOS ให้เรียกใช้สิ่งนี้: sudo yum install libXext libSM libXrender


สิ่งนี้ทำให้เกิดข้อผิดพลาดเมื่อเรียกใช้ R บนบรรทัดคำสั่งตามที่ติดตั้งโดยการติดตั้ง Anaconda R ของฉัน
blahblahetcetc

32

ขณะนี้มีเวอร์ชัน headless 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เมื่อเพิ่ม headless แล้วมันหายไป
Vadim

เช่นกันหากใครที่กำลังมองหาโซลูชันเพื่อเรียกใช้ OpenCV บนสภาพแวดล้อมที่ยืดหยุ่นของ Google App Engine นี่คือทางออก
OğulcanÇelik

21

อาจเป็นปัญหากับpython-opencvเวอร์ชันของคุณ การดาวน์เกรดเวอร์ชันของคุณเป็น 3.3.0.9 จะดีกว่าซึ่งไม่มีการอ้างอิง GUI ใด ๆ คำถามเดียวกันที่พบบน GitHub นี่การเชื่อมโยงไปยังคำตอบ


2
pip ติดตั้ง 'opencv-Contrib-python == 3.3.0.9' (หลังจากลบรายการปัจจุบันแน่นอน: pip ถอนการติดตั้ง 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 ขอบคุณคุณพูดถูก เพิ่งแก้ไข.
Utopia


0

ฉันไม่สามารถติดตั้ง cv2 บนโน้ตบุ๊ก Anaconda-Jupyter ที่ทำงานบน Ubuntu บน Google Cloud Platform ได้ แต่ฉันพบวิธีการดังต่อไปนี้:

รันคำสั่งต่อไปนี้จากเทอร์มินัล ssh และทำตามคำสั่ง:

 sudo apt-get install libsm6 libxrender1 libfontconfig1

เมื่อติดตั้งแล้วให้เปิดสมุดบันทึก Jupyter และเรียกใช้คำสั่งต่อไปนี้:

!pip install opencv-contrib-python

หมายเหตุ: ฉันพยายามรันคำสั่งนี้: "sudo python3 -m pip install opencv-Contrib-python" แต่มันแสดงข้อผิดพลาด แต่คำสั่งข้างต้นใช้ได้ผลกับฉัน

ตอนนี้รีเฟรชหน้าสมุดบันทึกและตรวจสอบว่าติดตั้งแล้วหรือไม่โดยเรียกใช้import cv2ในโน้ตบุ๊ก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.