Cài đặt OpenCV cho Python trên Ubuntu, nhận được ImportError: Không có mô-đun nào có tên cv2.cv


87

Tôi có hệ thống Ubuntu 14.04, trên đó tôi muốn cài đặt OpenCV và sử dụng nó với Python 2.x.

Tôi đã cài đặt OpenCV bằng hướng dẫn tại đây: https://help.ubuntu.com/community/OpenCV

Quá trình cài đặt dường như chạy đúng cách, không có lỗi, tập lệnh kết thúc với đầu ra

OpenCV 2.4.9 ready to be used

Khi tôi cố gắng chạy tập lệnh Python mẫu, tôi nhận được như sau:

$ 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

Tôi nghi ngờ tôi biết tại sao, tôi chỉ không biết làm thế nào để sửa chữa nó. OpenCV được cài đặt vào thư mục hiện tại mà tôi đã ở trong khi chạy tập lệnh cài đặt, đó là thư mục con của thư mục chính của tôi.

Những người khác gặp lỗi nhập này sau khi cài đặt dường như đang gặp sự cố về đường dẫn và may mắn thêm điều này vào mã của họ:

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

hoặc cập nhật PYTHONPATH của họ với cùng thư mục đó. Tôi đã thử thêm mã đó, nó không tạo ra sự khác biệt. Tôi không thấy bất kỳ tệp nào trong thư mục "gói trang". Tôi có nên thực hiện cài đặt trong thư mục đó không? Tôi tưởng tượng các hướng dẫn cài đặt sẽ viết ra điều đó. Tôi nghi ngờ rằng vấn đề của tôi liên quan đến việc Python không tìm thấy cài đặt OpenCV, nhưng tôi không chắc chắn về cách tiếp tục.

Vui lòng giúp tôi cài đặt OpenCV có thể sử dụng đơn giản nhất có thể.


1
bản sao có thể xảy ra của OpenCV - không thể tìm thấy mô-đun cv2
krock

@krock Tôi không nghĩ đây là sự trùng lặp của điều đó. Tôi không có tệp cv2.so trong thư mục gói trang web của mình giống như người dùng đã có. Ngoài ra, tôi đã đề cập đến hai giải pháp được đưa ra trong bài đăng đó và không hiệu quả với tôi ở đây.
robm

1
nhưng bạn có thể nhập cv2? mô-đun cv (hoặc cv2.cv) cũ sẽ không có trong các phiên bản opencv sắp tới
berak

@berak Không, tôi cũng không thể nhập cv2.
robm

Câu trả lời:


110

Tôi nghĩ bạn không có python-opencvgói.

Tôi đã có cùng một vấn đề và

sudo apt-get install python-opencv

đã giải quyết vấn đề cho tôi.

bạn có thể cài đặt opencv từ liên kết sau https://www.learnopencv.com/install-opencv3-on-ubuntu/ Nó hoạt động cho tôi. apt-get install không chứa nhiều gói opencv


Tại sao câu trả lời của bạn phải khác với những câu khác?
Michele d'Amico

OP có gói. Nếu không, ImportError sẽ thông báo, "không có gói nào có tên cv2".
Andy Hayden

Cùng một vấn đề, đã thử cài đặt theo hướng dẫn tại đây: help.ubuntu.com/community/OpenCV Không may mắn. Giải pháp này đã làm việc cho tôi. Cảm ơn!
jschabs

2
Điều đó thật đơn giản! Sau khi đau đầu với rất nhiều "giải pháp" cực kỳ phức tạp khác, không giải pháp nào trong số đó hiệu quả, điều này đã thành công. Cảm ơn! :-)
Rafael_Espericueta

sudo dnf cài đặt opencv-python cho fedora.
Dinuka Thilanga

30

Tôi cũng đã có vấn đề này. Đã thử những thứ khác nhau. Nhưng cuối cùng

conda install opencv

đã làm cho tôi.


1
Điều này sẽ hoạt động giả sử rằng python của bạn là Anaconda.
ComputerScientist

4
Lưu ý conda install opencvkhông hoạt động cho Windows 64 bit.
shahar_m

17

Nếu bạn muốn càng đơn giản càng tốt, hãy cài đặt từ kho:

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

1
Tôi đã phải cắt bỏ opencv-devmột phần, nhưng nếu không, câu trả lời này phù hợp với tôi.
Brian Z

Câu trả lời hay nhất ở đây!
Giacomo1968

11

Sử dụng pip:

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

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

Và khi bạn thêm một đường dẫn đến PYTHONPATH bằng sys, PYTHONPATH nó luôn được khởi động lại thành các giá trị mặc định khi bạn đóng trình bao Python của mình. Kiểm tra chuỗi này:

Thêm vĩnh viễn một thư mục vào PYTHONPATH

Đầu tiên hãy thêm openCV vào đường dẫn của bạn (Hướng dẫn nhanh):

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

sau đó, cài đặt các gói không phải python pyopencv phụ thuộc vào:

sudo apt-get build-dep python-opencv

cuối cùng, sử dụng pip:

pip install pyopencv

Ngoài ra, bạn có thể xem hướng dẫn này để cài đặt openCV trong ubuntu 14.04 LTS

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


4
Tôi nên sử dụng gói pip nào cho OpenCV? Có rất nhiều được liệt kê tại pypi.python.org/pypi , không rõ ràng nếu có là chính thức và / hoặc hiện tại.
robm

Tôi sẽ sửa câu trả lời của tôi với một hướng dẫn ngắn, hãy đánh dấu nó như là đúng nếu là hữu ích
Juan David

2
Điều này LAF không đúng. Lý do lỗi này được hiển thị là vì mô-đun con cv không còn xuất hiện trong các phiên bản gần đây.
Andy Hayden

Tôi không nói về lý do của lỗi. Tôi chỉ đưa ra một giải pháp khả thi. Nó làm việc cho tôi, có lẽ có thể hữu ích cho @AndyHayden người khác
Juan David

LỖI: Không thể tìm thấy phiên bản đáp ứng yêu cầu pyopencv (từ các phiên bản: 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) LỖI: Không tìm thấy phân phối phù hợp cho pyopencv
Stepan Yakovenko

10

Hãy thử conda install -c conda-forge opencvnếu bạn đang sử dụng anaconda, nó hoạt động!


8

Tìm nơi cv2.sođược, ví dụ /usr/local/lib/python2.7/dist-packages, sau đó thêm vào này của bạn ~/.bashrcbằng cách thực hiện:

sudo gedit ~/.bashrc

và thêm

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

Ở dòng cuối cùng

Và sau đó hãy nhớ mở một thiết bị đầu cuối khác, điều này có thể thành công và tôi đã giải quyết được vấn đề của mình. Hy vọng nó có thể giúp bạn.


5

Xác minh xem cv2.so đã biên dịch chưa, nên được đặt trong: /usr/local/lib/python2.7/site-packages Sau đó xuất đường dẫn đó như thế này

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

Giống như trong câu trả lời ở đây


4

Môi trường của tôi:

  • Ubuntu 15.10
  • Python 3.5

Vì không có câu trả lời nào trước đây phù hợp với tôi, tôi đã tải xuống OpenCV 3.0 từ http://opencv.org/downloads.html và làm theo hướng dẫn cài đặt . Tôi đã sử dụng cmakelệnh sau :

$ ~/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 ..

Mỗi bước của hướng dẫn đều quan trọng. Đặc biệt, đừng quên gọi điện sudo make install.


3

Tôi đã tìm thấy một giải pháp trong hướng dẫn ở đây:

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

Tôi đã sử dụng đến biên dịch và cài đặt từ nguồn. Quá trình này diễn ra rất suôn sẻ, nếu tôi biết, tôi sẽ bắt đầu với điều đó thay vì cố gắng tìm một cách đơn giản hơn để cài đặt. Hy vọng rằng thông tin này là hữu ích cho ai đó.


3

Tạo một liên kết tượng trưng đến OpenCV. Ví dụ:

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

Nếu bạn thực sự chắc chắn rằng bạn đã cài đặt cv2 nhưng nó không có lỗi mô-đun. Có một giải pháp cho điều này. Có thể bạn có cv2.sotệp trong thư mục của mình

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

di chuyển cv2.sotệp này đến

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

sao chép tệp vào thư mục gói trang



2

Cơn ác mộng cài đặt hoàn chỉnh của nó, nhưng tôi hy vọng một điều nữa là bạn có thể tránh xây dựng opencv từ nguồn:

pip cài đặt opencv-Contrib-python


1

nếu bạn đang sử dụng nền tảng pycharm thì rất đơn giản, hãy vào xem => cửa sổ công cụ ==> bảng điều khiển python sau đó bạn sẽ thấy ở dưới cùng bảng điều khiển với [1]: gõ cái này!pip install opencv-python


1

Tôi đã thử tất cả các tùy chọn khác ở đây, nhưng tôi không thể import cv2làm việc với Anaconda trên Ubuntu. Đây là điều duy nhất đã giúp:

pip install opencv-python


cảm ơn bạn. nó hoạt động: pip3 cài đặt opencv-python. ////// Thử nghiệm: python3 / import numpy / import cv2
Soner PALANCI Ngày

1

Bạn có thể xây dựng cho nguồn theo hướng dẫn OpenCV chính thức . Phần quan trọng là để thiết lập PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHPYTHON3_NUMPY_INCLUDE_DIRScác thông số cho python3.6. Đây là tất cả các bước:

  1. Sao chép repo

    git clone https://github.com/opencv/opencv.git
    
  2. Tạo buildthư mục

    cd ~/opencv
    mkdir build
    cd build
    
  3. Cấu hình

    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. Xây dựng

    make -j8
    
  5. Cài đặt thư viện

    sudo make install
    
  6. Kiểm tra

    python3
    import cv2
    

Nếu bạn không gặp lỗi "Không có mô-đun có tên cv2", thì quá trình cài đặt đã thành công.

Lưu ý: Nếu bạn không biết đường dẫn đến numpycho các PYTHON3_NUMPY_INCLUDE_DIRStham số, bạn có thể tìm thấy nó bằng cách thực hiện import numpyvà sau đó numpy.__file__trong một vỏ python3.



0

Đối với tôi, vấn đề này là do tôi đã không liên kết sym-tệp tin cv2.so trong ~/.virtualenvs/cv/lib/python3.5/site-packagesthư mục một cách thích hợp (tên virualenv của bạn có thể không phải là "cv", phiên bản python của bạn có thể không phải là 3.5 - điều chỉnh phù hợp).

Nếu bạn đi đến ~/.virtualenvs/cv/lib/python3.5/site-packagesthư mục và ls, tệp cv2.so sẽ xuất hiện với màu xanh lam nhạt (Ubuntu 16.04) cho thấy rằng nó đã được liên kết. Bạn có thể kiểm tra vị trí liên kết bằng cách gõ: readlink cv2.so

Nếu cv2.so xuất hiện màu đỏ (như của tôi), hãy rm tệp và nhập: (đối với bản cài đặt python 3.5 của tôi)

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

HOẶC (nếu bạn có python 3.6)

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

Nếu bạn đang làm việc trong python 2.6 hoặc python 2.7, thay vào đó bạn nhập:

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

Nếu các tệp cv2.so hoặc cv2.cpython-36m-x86_64-linux-gnu.so không tồn tại ở /usr/local/lib/python***/dist-packagesvị trí của bạn , hãy kiểm tra xem chúng có nằm trong một /usr/local/lib/python***/sites-packagesthư mục hay không. Nếu vậy, hãy điều chỉnh đường dẫn cho phù hợp. Nếu không, đã xảy ra lỗi với quá trình cài đặt opencv của bạn.

Câu trả lời này được lấy cảm hứng từ thông tin ở đây: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

Đối với những người đang cố gắng sử dụng 3.1.0 nhưng sau khi cài đặt python thông báo "không tìm thấy mô-đun cv2".

Bạn có thể có python nhưng không có python-dev.

sudo apt-get install python-dev

sau đó cài đặt lại 3.1.0 và nó sẽ hoạt động.


0

thử sử dụng sudo apt install python3-opencv

nó sẽ cài đặt gói cv mở mới nhất.

Hoặc bạn có thể thử cài đặt lại gói opencv. Nó có thể đã bị hỏng trong quá trình cài đặt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.