Instalowanie OpenCV dla Pythona na Ubuntu, pobieranie ImportError: Brak modułu o nazwie cv2.cv


87

Mam system Ubuntu 14.04, na którym chcę zainstalować OpenCV i używać go z Pythonem 2.x.

Zainstalowałem OpenCV zgodnie z instrukcjami tutaj: https://help.ubuntu.com/community/OpenCV

Wydawało się, że instalacja przebiegła poprawnie, żadnych błędów, skrypt zakończył się wyświetleniem

OpenCV 2.4.9 ready to be used

Kiedy próbuję uruchomić przykładowy skrypt w języku Python, otrzymuję następujące informacje:

$ 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

Podejrzewam, że wiem dlaczego, po prostu nie wiem, jak to naprawić. OpenCV zainstalowany w bieżącym katalogu, w którym byłem, kiedy uruchomiłem skrypt instalacyjny, jest to podkatalog mojego folderu domowego.

Inni, którzy otrzymali ten błąd importu po instalacji, wydają się mieć problem ze ścieżką i mają szczęście, dodając to do swojego kodu:

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

lub aktualizowanie PYTHONPATH w tym samym katalogu. Próbowałem dodać ten kod, ale to nie robi różnicy. Nie widzę żadnych plików w katalogu „site-packages”. Czy powinienem był przeprowadzić instalację w tym katalogu? Wyobrażam sobie, że instrukcja instalacji by to opisała. Podejrzewam, że mój problem jest związany z tym, że Python nie znajduje instalacji OpenCV, ale nie jestem pewien, jak kontynuować.

Pomóż mi uzyskać użyteczną instalację OpenCV tak prosto, jak to tylko możliwe.



@krock Nie sądzę, żeby to był taki dupek. Nie mam pliku cv2.so obecnego w katalogu pakietów witryn, tak jak miał to ten użytkownik. Wspomniałem również o dwóch rozwiązaniach, które są podane w tym poście, ale żadne z nich nie zadziałało.
robm

1
ale czy możesz zaimportować cv2? stary moduł cv (lub cv2.cv) nie będzie dostępny w nadchodzących wersjach
opencv

@berak Nie, nie mogę też zaimportować cv2.
robm

Odpowiedzi:


110

Myślę, że nie masz python-opencvpaczki.

Miałem dokładnie ten sam problem i

sudo apt-get install python-opencv

rozwiązał problem za mnie.

możesz zainstalować opencv z poniższego linku https://www.learnopencv.com/install-opencv3-on-ubuntu/ To działa dla mnie. apt-get install nie zawiera wielu pakietów opencv


Dlaczego Twoja odpowiedź powinna różnić się od pozostałych?
Michele d'Amico

OP ma pakiet. W przeciwnym razie ImportError powiedziałby „brak pakietu o nazwie cv2”.
Andy Hayden

Ten sam problem, próbowałem zainstalować zgodnie z instrukcjami tutaj: help.ubuntu.com/community/OpenCV Nie powodzenia. To rozwiązanie zadziałało dla mnie. Dzięki!
jschabs

2
To było takie proste! Po udręce nad tyloma innymi niewiarygodnie złożonymi „rozwiązaniami”, z których żadne nie zadziałało, to załatwiło sprawę. Dzięki! :-)
Rafael_Espericueta

sudo dnf zainstaluj opencv-python dla Fedory.
Dinuka Thilanga

30

Miałem też ten problem. Próbowałem różnych rzeczy. Ale w końcu

conda install opencv

pracował dla mnie.


1
To zadziała przy założeniu, że twój Python to Anaconda.
ComputerScientist

4
Uwaga conda install opencvnie działa w systemie Windows 64 bit.
shahar_m

17

Jeśli chcesz tak prosto, jak to tylko możliwe, zainstaluj z repozytorium:

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

1
Musiałem wyciąć opencv-devczęść, ale poza tym ta odpowiedź mi się podobała.
Brian Z

Najlepsza odpowiedź tutaj!
Giacomo1968,

11

Użyj pip:

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

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

A kiedy dodasz ścieżkę do PYTHONPATH za pomocą sys, PYTHONPATH jest zawsze restartowany do wartości domyślnych po zamknięciu powłoki Pythona. Sprawdź ten wątek:

Trwale dodaj katalog do PYTHONPATH

Najpierw dodaj openCV do swojej ścieżki (Krótki przewodnik):

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

następnie zainstaluj pakiety inne niż python. pyopencv zależy od:

sudo apt-get build-dep python-opencv

na koniec użyj pip:

pip install pyopencv

Możesz również sprawdzić ten samouczek, aby zainstalować openCV w systemie Ubuntu 14.04 LTS

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


4
Którego pakietu pip powinienem użyć do OpenCV? Wiele jest wymienionych na pypi.python.org/pypi , nie jest jasne, które z nich jest oficjalne i / lub aktualne.
robm

Mam zamiar edytować moją odpowiedź z krótkim przewodnikiem, proszę zaznaczyć to prawidłowe jakby była przydatna
Juan David

2
To nie jest poprawne. Przyczyną tego błędu jest to, że podmoduł cv nie jest już obecny w ostatnich wersjach.
Andy Hayden

Nie mówię o przyczynie błędu. Podaję tylko możliwe rozwiązanie. To działa na mnie, to może być przydatne dla kogoś innego @AndyHayden
Juan David

BŁĄD: nie można znaleźć wersji spełniającej wymagania pyopencv (z wersji: 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) BŁĄD: Nie znaleziono pasującej dystrybucji dla pyopencv
Stepan Yakovenko

10

Spróbuj, conda install -c conda-forge opencvjeśli używasz anakondy, to działa!


8

Znajdź cv2.sona przykład /usr/local/lib/python2.7/dist-packages, gdzie jest, a następnie dodaj to do swojego ~/.bashrc, wykonując:

sudo gedit ~/.bashrc

i dodaj

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

W ostatniej linii

A potem pamiętaj, aby otworzyć inny terminal, to może działać, a ja rozwiązałem swój problem. Mam nadzieję, że może ci to pomóc.


5

Sprawdź, czy cv2.so się skompilował, powinien być umieszczony w: /usr/local/lib/python2.7/site-packages Następnie wyeksportuj tę ścieżkę w ten sposób

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

To samo, co w odpowiedzi tutaj


4

Moje otoczenie:

  • Ubuntu 15.10
  • Python 3.5

Ponieważ żadna z poprzednich odpowiedzi nie zadziałała, pobrałem OpenCV 3.0 z http://opencv.org/downloads.html i postępowałem zgodnie z instrukcją instalacji . Użyłem następującego cmakepolecenia:

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

Każdy krok samouczka jest ważny. W szczególności nie zapomnij zadzwonić sudo make install.



3

Utwórz dowiązanie symboliczne do OpenCV. Na przykład:

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

Jeśli naprawdę jesteś pewien, że zainstalowałeś cv2, ale nie daje to błędu modułu. Jest na to rozwiązanie. Prawdopodobnie masz cv2.soplik w swoim katalogu

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

przenieś ten cv2.soplik do

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

skopiuj plik do katalogu site-packages



2

Kompletny koszmar instalacji, ale mam jeszcze jedną nadzieję, że unikniesz budowania opencv ze źródła:

pip zainstaluj opencv-contrib-python


1

jeśli korzystasz z platformy pycharm, to bardzo proste przejdź do widoku => okna narzędzi ==> konsola pythona, po czym na dole zobaczysz konsolę z [1]: wpisz to!pip install opencv-python


1

Wypróbowałem tutaj wszystkie inne opcje, ale nie mogłem import cv2pracować z Anacondą na Ubuntu. To jedyna rzecz, która pomogła:

pip install opencv-python


Dziękuję Ci. to działa: pip3 install opencv-python. ////// Testowanie: python3 / import numpy / import cv2
Soner PALANCI

1

Możesz budować dla źródła zgodnie z oficjalnym samouczkiem dotyczącym OpenCV . Kluczowym elementem jest ustawienie PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHi PYTHON3_NUMPY_INCLUDE_DIRSparametry python3.6. Oto wszystkie kroki:

  1. Sklonuj repozytorium

    git clone https://github.com/opencv/opencv.git
    
  2. Utwórz buildkatalog

    cd ~/opencv
    mkdir build
    cd build
    
  3. Skonfiguruj

    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. Budować

    make -j8
    
  5. Zainstaluj biblioteki

    sudo make install
    
  6. Test

    python3
    import cv2
    

Jeśli nie pojawi się błąd „Brak modułu o nazwie cv2”, oznacza to, że instalacja przebiegła pomyślnie.

Uwaga: Jeśli nie znasz ścieżkę numpydla PYTHON3_NUMPY_INCLUDE_DIRSparametru, można go znaleźć poprzez wykonanie import numpyi następnie numpy.__file__w powłoce python3.



0

U mnie ten problem wynikał z faktu, że nie podałem poprawnie sym-dowiązania pliku cv2.so w ~/.virtualenvs/cv/lib/python3.5/site-packagesfolderze (nazwa twojego virualenv może nie być "cv", twoja wersja Pythona może nie być 3.5 - dostosuj odpowiednio).

Jeśli przejdziesz do ~/.virtualenvs/cv/lib/python3.5/site-packagesfolderu i ls, plik cv2.so powinien pojawić się na jasnoniebiesko (Ubuntu 16.04), wskazując, że jest połączony. Możesz sprawdzić lokalizację linku wpisując: readlink cv2.so

Jeśli cv2.so pojawia się na czerwono (tak jak mój), rm plik i wpisz: (dla mojej instalacji Pythona 3.5)

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

LUB (jeśli masz Pythona 3.6)

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

Jeśli pracujesz w Pythonie 2.6 lub Pythonie 2.7, zamiast tego wpisz:

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

Jeśli pliki cv2.so lub cv2.cpython-36m-x86_64-linux-gnu.so nie istnieją w Twojej /usr/local/lib/python***/dist-packageslokalizacji, sprawdź, czy znajdują się w /usr/local/lib/python***/sites-packagesfolderze. Jeśli tak, dostosuj odpowiednio ścieżkę. Jeśli nie, coś poszło nie tak z twoją instalacją opencv.

Ta odpowiedź została zainspirowana informacjami tutaj: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

Dla tych, którzy próbują używać 3.1.0, ale po zainstalowaniu Pythona mówi „Nie znaleziono modułu cv2”.

Prawdopodobnie masz Pythona, ale nie python-dev.

sudo apt-get install python-dev

następnie ponownie zainstaluj 3.1.0 i będzie działać.


0

spróbuj użyć sudo apt install python3-opencv

zainstaluje najnowszy pakiet open cv.

Możesz też spróbować ponownie zainstalować pakiet opencv. Mógł ulec uszkodzeniu podczas instalacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.