การติดตั้ง OpenCV สำหรับ Python บน Ubuntu รับ ImportError: ไม่มีโมดูลชื่อ cv2.cv


87

ฉันมีระบบ Ubuntu 14.04 ซึ่งฉันต้องการติดตั้ง OpenCV และใช้กับ Python 2.x

ฉันติดตั้ง OpenCV โดยใช้คำแนะนำที่นี่: https://help.ubuntu.com/community/OpenCV

ดูเหมือนว่าการติดตั้งจะทำงานได้อย่างถูกต้องไม่มีข้อผิดพลาดสคริปต์จบลงด้วยเอาต์พุต

OpenCV 2.4.9 ready to be used

เมื่อฉันพยายามเรียกใช้สคริปต์ Python ตัวอย่างฉันจะได้รับสิ่งต่อไปนี้:

$ python opencv.py
Traceback (most recent call last):
  File "opencv.py", line 1, in <module>
    from cv2.cv import *
ImportError: No module named cv2.cv

ฉันสงสัยว่าฉันรู้ว่าทำไมฉันไม่รู้วิธีแก้ไข OpenCV ติดตั้งในไดเร็กทอรีปัจจุบันที่ฉันอยู่เมื่อฉันรันสคริปต์การติดตั้งซึ่งเป็นไดเร็กทอรีย่อยของโฮมโฟลเดอร์

คนอื่น ๆ ที่ได้รับข้อผิดพลาดในการนำเข้านี้หลังจากการติดตั้งดูเหมือนจะมีปัญหาเกี่ยวกับเส้นทางและโชคดีที่ได้เพิ่มสิ่งนี้ลงในโค้ดของพวกเขา:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

หรืออัปเดต PYTHONPATH ด้วยไดเร็กทอรีเดียวกัน ฉันลองเพิ่มรหัสนั้นก็ไม่ได้สร้างความแตกต่าง ฉันไม่เห็นไฟล์ใด ๆ ในไดเร็กทอรี "site-package" ฉันควรทำการติดตั้งในไดเร็กทอรีนั้นหรือไม่? ฉันคิดว่าคำแนะนำในการติดตั้งจะสะกดออกมา ฉันสงสัยว่าปัญหาของฉันเกี่ยวข้องกับ Python ที่ไม่พบการติดตั้ง OpenCV แต่ฉันไม่แน่ใจว่าจะดำเนินการอย่างไร

โปรดช่วยฉันติดตั้ง OpenCV ที่ใช้งานได้โดยง่ายที่สุด


1
อาจซ้ำกันของOpenCV - ไม่พบโมดูล cv2
krock

@krock ฉันไม่คิดว่านี่เป็นการซ้ำซากขนาดนั้น ฉันไม่มีไฟล์ cv2.so อยู่ในไดเรกทอรีไซต์แพ็กเกจของฉันเหมือนที่ผู้ใช้มี นอกจากนี้ฉันยังพูดถึงวิธีแก้ปัญหาสองข้อที่ให้ไว้ในโพสต์นั้นและไม่ได้ผลสำหรับฉันที่นี่
robm

1
แต่คุณสามารถนำเข้า cv2? โมดูล cv (หรือ cv2.cv) เก่าจะไม่มีใน opencv เวอร์ชันที่จะมาถึง
berak

@berak ไม่ฉันไม่สามารถนำเข้า cv2 ได้
robm

คำตอบ:


110

ฉันคิดว่าคุณไม่มีpython-opencvแพ็คเกจ

ฉันมีปัญหาเดียวกันแน่นอนและ

sudo apt-get install python-opencv

แก้ไขปัญหาให้ฉัน

คุณสามารถติดตั้ง opencv ได้จากลิงค์ต่อไปนี้ https://www.learnopencv.com/install-opencv3-on-ubuntu/ มันใช้ได้กับฉัน apt-get install ไม่มีแพ็คเกจ opencv มากมาย


ทำไมคำตอบของคุณจึงแตกต่างจากคำตอบอื่น ๆ ?
Michele d'Amico

OP มีแพคเกจ มิฉะนั้น ImportError จะบอกว่า "ไม่มีแพ็คเกจชื่อ cv2"
Andy Hayden

ปัญหาเดียวกันลองติดตั้งตามคำแนะนำที่นี่: help.ubuntu.com/community/OpenCV ไม่มีโชค วิธีนี้ใช้ได้ผลสำหรับฉัน ขอบคุณ!
jschabs

2
มันง่ายมาก! หลังจากทนทุกข์ทรมานกับ "วิธีแก้ปัญหา" ที่ซับซ้อนเหลือเชื่ออื่น ๆ อีกมากมายซึ่งไม่ได้ผลอะไรเลย ขอบคุณ! :-)
Rafael_Espericueta

sudo dnf ติดตั้ง opencv-python สำหรับ fedora
Dinuka Thilanga

30

ฉันยังมีปัญหานี้ พยายามสิ่งต่างๆ แต่สุดท้าย

conda install opencv

ทำงานให้ฉัน


1
วิธีนี้จะได้ผลโดยสมมติว่างูหลามของคุณคืออนาคอนดา
ComputerScientist

4
หมายเหตุไม่สามารถconda install opencvใช้ได้กับ windows 64 บิต
shahar_m

17

หากคุณต้องการให้ง่ายที่สุดให้ติดตั้งจากที่เก็บ:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev

1
ฉันต้องตัดopencv-devส่วนนั้นออกไปแต่อย่างอื่นคำตอบนี้ใช้ได้ดีกับฉัน
Brian Z

คำตอบที่ดีที่สุดที่นี่!
Giacomo1968

11

ใช้ pip:

https://pypi.python.org/pypi/pip

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

และเมื่อคุณเพิ่มพา ธ ไปยัง PYTHONPATH ด้วย sys PYTHONPATH จะรีสตาร์ทเป็นค่าเริ่มต้นเสมอเมื่อคุณปิด Python shell ตรวจสอบหัวข้อนี้:

เพิ่มไดเร็กทอรีไปยัง PYTHONPATH อย่างถาวร

ขั้นแรกให้เพิ่ม openCV ในเส้นทางของคุณ (คู่มือฉบับย่อ):

https://help.ubuntu.com/community/OpenCV

หลังจากนั้นให้ติดตั้งแพ็คเกจที่ไม่ใช่ python pyopencv ขึ้นอยู่กับ:

sudo apt-get build-dep python-opencv

สุดท้ายใช้ pip:

pip install pyopencv

นอกจากนี้คุณสามารถตรวจสอบบทช่วยสอนนี้เพื่อติดตั้ง openCV ใน ubuntu 14.04 LTS

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/


4
แพ็คเกจ pip ใดที่ฉันควรใช้สำหรับ OpenCV มีหลายรายการที่pypi.python.org/pypiซึ่งไม่ชัดเจนว่ารายการใดเป็นทางการและ / หรือเป็นปัจจุบัน
robm

ฉันจะแก้ไขคำตอบของฉันด้วยคำแนะนำสั้น ๆ โปรดทำเครื่องหมายว่าถูกต้องหากมีประโยชน์
Juan David

2
สิ่งนี้ไม่ถูกต้อง สาเหตุที่แสดงข้อผิดพลาดนี้เนื่องจากไม่มีโมดูลย่อย cv ในเวอร์ชันล่าสุดอีกต่อไป
Andy Hayden

ฉันไม่ได้พูดถึงเหตุผลของข้อผิดพลาด ฉันแค่ให้ทางออกที่เป็นไปได้ มันได้ผลสำหรับฉันอาจจะมีประโยชน์สำหรับคนอื่น @AndyHayden
Juan David

ข้อผิดพลาด: ไม่พบเวอร์ชันที่ตรงตามข้อกำหนด pyopencv (จากเวอร์ชัน: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1 0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0) ข้อผิดพลาด: ไม่พบการแจกแจงที่ตรงกันสำหรับ pyopencv
Stepan Yakovenko


8

ค้นหาตำแหน่งcv2.soตัวอย่างเช่น/usr/local/lib/python2.7/dist-packagesจากนั้นเพิ่มสิ่งนี้ลงในของคุณ~/.bashrcโดยทำ:

sudo gedit ~/.bashrc

และเพิ่ม

export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH

ในบรรทัดสุดท้าย

จากนั้นอย่าลืมเปิดเทอร์มินัลอื่นซึ่งสามารถใช้งานได้และฉันได้แก้ปัญหาของฉันแล้ว หวังว่ามันจะช่วยคุณได้


5

ตรวจสอบว่า cv2.so คอมไพล์หรือไม่ควรอยู่ใน: /usr/local/lib/python2.7/site-packages จากนั้นส่งออกเส้นทางนั้นเช่นนี้

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

เช่นเดียวกับในคำตอบที่นี่


4

สภาพแวดล้อมของฉัน:

  • Ubuntu 15.10
  • Python 3.5

เนื่องจากไม่มีคำตอบก่อนหน้านี้ทำงานสำหรับฉันฉันดาวน์โหลด OpenCV 3.0 จากhttp://opencv.org/downloads.htmlและปฏิบัติตามคู่มือการติดตั้ง ฉันใช้cmakeคำสั่งต่อไปนี้:

$ ~/Programs/opencv-3.0.0$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON3_EXECUTABLE=/usr/bin/python3.5 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..

แต่ละขั้นตอนของการสอนมีความสำคัญ โดยเฉพาะอย่าลืมโทรsudo make install.


3

ฉันพบวิธีแก้ปัญหาในคำแนะนำที่นี่:

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

ฉันใช้การรวบรวมและติดตั้งจากแหล่งที่มา กระบวนการนี้ราบรื่นมากถ้าฉันรู้ฉันจะเริ่มจากสิ่งนั้นแทนที่จะพยายามหาวิธีที่ง่ายกว่าในการติดตั้ง หวังว่าข้อมูลนี้จะเป็นประโยชน์กับใครบางคน


3

สร้างลิงก์สัญลักษณ์ไปยัง OpenCV เช่น:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/dist-packages/cv.py cv.py

2

หากคุณแน่ใจจริงๆว่าคุณติดตั้ง cv2 แต่ไม่มีข้อผิดพลาดของโมดูล มีทางออกสำหรับเรื่องนี้ คุณอาจมีcv2.soไฟล์อยู่ในไดเร็กทอรีของคุณ

/usr/local/lib/python2.7/site-packages/cv2.so

ย้ายcv2.soไฟล์นี้ไปที่

/usr/lib/python2.7/site-packages

คัดลอกไฟล์ลงในไดเร็กทอรีไซต์แพ็คเกจ



2

ฝันร้ายในการติดตั้งที่สมบูรณ์ แต่ฉันจะให้อีกหนึ่งความหวังว่าคุณจะสามารถหลีกเลี่ยงการสร้าง opencv จากแหล่งที่มา:

pip ติดตั้ง opencv-Contrib-python


1

หากคุณใช้แพลตฟอร์ม pycharm มันง่ายมากให้เข้าไปที่ view => tool windows ==> python console หลังจากนั้นคุณจะเห็นที่ด้านล่างของคอนโซลโดยมี [1]: พิมพ์สิ่งนี้!pip install opencv-python


1

ฉันลองใช้ตัวเลือกอื่น ๆ ทั้งหมดที่นี่ แต่ฉันไม่สามารถimport cv2ทำงานกับ Anaconda บน Ubuntu ได้ นี่เป็นสิ่งเดียวที่ช่วย:

pip install opencv-python


ขอขอบคุณ. มันใช้งานได้: pip3 ติดตั้ง opencv-python ////// การทดสอบ: python3 / import numpy / import cv2
Soner PALANCI

1

คุณสามารถสร้างสำหรับแหล่งที่มาต่อไปนี้OpenCV อย่างเป็นทางการของการกวดวิชา ส่วนที่สำคัญคือการตั้งค่าPYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHและพารามิเตอร์สำหรับการPYTHON3_NUMPY_INCLUDE_DIRS python3.6นี่คือขั้นตอนทั้งหมด:

  1. โคลน repo

    git clone https://github.com/opencv/opencv.git
    
  2. สร้างbuildไดเร็กทอรี

    cd ~/opencv
    mkdir build
    cd build
    
  3. กำหนดค่า

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local .. \
          -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
          -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
          -D BUILD_NEW_PYTHON_SUPPORT=ON \
          -D BUILD_opencv_python3=ON \
          -D HAVE_opencv_python3=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D PYTHON3_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
          -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. \
          -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/user/.local/lib/python3.6/site-packages/numpy/core/include/
    
  4. สร้าง

    make -j8
    
  5. ติดตั้งไลบรารี

    sudo make install
    
  6. ทดสอบ

    python3
    import cv2
    

หากคุณไม่ได้รับข้อผิดพลาด "No module named cv2" แสดงว่าการติดตั้งสำเร็จ

หมายเหตุ: หากคุณไม่ทราบเส้นทางไปnumpyยังPYTHON3_NUMPY_INCLUDE_DIRSพารามิเตอร์คุณสามารถค้นหาได้โดยดำเนินการimport numpyจากนั้นnumpy.__file__ใน python3 เชลล์



0

สำหรับฉันปัญหานี้เกิดจากการที่ฉันไม่ได้เชื่อมโยง sym ที่เหมาะสมกับไฟล์ cv2.so ในไฟล์~/.virtualenvs/cv/lib/python3.5/site-packagesโฟลเดอร์ (ชื่อ virualenv ของคุณอาจไม่ใช่ "cv" เวอร์ชันของ python ของคุณอาจไม่ใช่ 3.5 - ปรับ ตามนั้น).

หากคุณไปที่~/.virtualenvs/cv/lib/python3.5/site-packagesโฟลเดอร์และ ls ไฟล์ cv2.so ควรปรากฏเป็นสีฟ้าอ่อน (Ubuntu 16.04) แสดงว่ามีการเชื่อมโยง คุณสามารถตรวจสอบตำแหน่งลิงก์ได้โดยพิมพ์: readlink cv2.so

หาก cv2.so ปรากฏเป็นสีแดง (เหมือนของฉัน) ให้ rm ไฟล์และพิมพ์: (สำหรับการติดตั้ง python 3.5 ของฉัน)

ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

หรือ (ถ้าคุณมี python 3.6)

ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

หากคุณกำลังทำงานใน python 2.6 หรือ python 2.7 ให้พิมพ์:

ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

หากไม่มีไฟล์ cv2.so หรือ cv2.cpython-36m-x86_64-linux-gnu.so ใน/usr/local/lib/python***/dist-packagesตำแหน่งของคุณให้ตรวจสอบว่าอยู่ใน/usr/local/lib/python***/sites-packagesโฟลเดอร์หรือไม่ ถ้าเป็นเช่นนั้นให้ปรับเส้นทางให้เหมาะสม หากไม่เป็นเช่นนั้นมีบางอย่างผิดพลาดกับการติดตั้ง opencv ของคุณ

คำตอบนี้ได้รับแรงบันดาลใจจากข้อมูลที่นี่: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

สำหรับผู้ที่พยายามใช้ 3.1.0 แต่หลังจากติดตั้ง python บอกว่า "cv2 module not found"

คุณน่าจะมี python แต่ไม่ใช่ python-dev

sudo apt-get install python-dev

จากนั้นติดตั้ง 3.1.0 ใหม่และใช้งานได้


0

ลองใช้ sudo apt ติดตั้ง python3-opencv

มันจะติดตั้งแพ็คเกจล่าสุดของ open cv

หรือคุณอาจลองติดตั้งแพ็คเกจ opencv ใหม่ อาจเกิดความเสียหายระหว่างการติดตั้ง

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