Dlaczego cv2.so brak po zainstalowaniu opencv?

Dzisiaj zainstalowałem opencv 2.4.4 na Ubuntu 12.10

Ale import cv2 nie działa.

root@-:~# python
Python 2.7.3 (default, Sep 26 2012, 21:53:58) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> 

As I understand cv2.so pudło, więc python nie widzi gdzie opencv

root@-:~# find / -name "cv.py"
/root/opencv-2.4.4/modules/python/src2/cv.py
root@-:~# find / -name "cv2.so"
root@-:~#

Moje kroki konfiguracji wyglądają jak

wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.4/OpenCV-2.4.4a.tar.bz2
tar -xjf OpenCV-2.4.4a.tar.bz2
cd opencv-2.4.4
mkdir release
cd release 
cmake -D CMAKE_BUILD_TYPE=RELEASE   -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..
make && make install
echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
ldconfig  
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/bash.bashrc
echo "export PKG_CONFIG_PATH" >> /etc/bash.bashrc

Gdzie jest cv2.so ? I dlaczego go nie było ?

 21
Author: Alex, 2013-04-03

9 answers

Jak zainstalować opencv (cv2) z powiązaniami Pythona w Linuksie-Ubuntu/Fedora

  1. Install gcc, g++/gcc-c++, cmake (apt-get lub yum, w przypadku yum use gcc-c++)

    apt-get install gcc, g++, cmake
    
  2. Downlaod najnowszy opencv z strony openCV

  3. Untar it with

    tar -xvf opencv-*
    
  4. Wewnątrz folderu untarred utwórz nowy folder o nazwie release

    mkdir release
    cd release
    

    (lub dowolnej nazwy folderu) i uruchom to polecenie w it

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
    

    .. pobierze pliki z folderu parents i przygotuje system do instalacja na platformie.

  5. W folderze release Uruchom

    make
    
  6. Po około 2-3 minutach obróbki wykonanej po jej zakończeniu

    sudo make install
    
  7. Eksport ścieżki Pythona

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

To jest to, teraz idź do Pythona i spróbuj

>>> import cv2

Nie powinieneś otrzymywać żadnego komunikatu o błędzie.

Testowane na Pythonie 2.7, powinien być praktycznie podobny do Pythona 3.x.

 46
Author: Waqas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 08:31:07

Instaluję python-opencv aby rozwiązać mój problem w Ubuntu 14.04 sh sudo apt-get install python-opencv

 11
Author: Wei Yang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-15 09:01:25

UĹźywajÄ ... C Raspbiana na rasberry pi miaĹ 'em problem, Ĺźe MODUĹ' ten nie zostaĹ ' znaleziony rĂłwnieĹź. Miałem trzy wersje Pythona (2.6, 2.7 i 3.2), upewnij się, że używasz python2. 7. Możesz to sprawdzić uruchamiając:

python --version

Stwierdziłem, że w moim przypadku po prostu musiałem zainstalować python-dev.

sudo apt-get install python-dev

Nie musiałem usuwać i ponownie instalować opencv, starałem się tego uniknąć, wiedząc, że ukończenie procesu zajmuje kilka godzin.

Po zainstalowaniu python-dev poszedłem do pliku, w którym zbudowałem opencv, dla mnie było to "~ / opencv-2.4.9 / release" i powiedziałem mu, aby

sudo make

Po tym udało mi się znaleźć cv2.so plik. szukanie za pomocą:

find / -name "cv2.so"

W tym momencie znalazłem kilka plików. następnie uruchomiłem tylko python, aby zobaczyć, czy może znaleźć "importuj" je

python 
>>> import cv2

Nie powinno być żadnych błędów.

>>> import numpy

Słyszałem, że numpy był niezbędny do uruchomienia opencv. Stamtąd uważam, że powinieneś być dobry, aby uruchomić swój skrypt, jeśli nie pojawią się żadne błędy. Mam nadzieję, że to pomoże.

Strona, która mi pomogła jest wymieniona...

Http://opencv-users.1802565.n2.nabble.com/I-can-t-find-cv-so-and-cv2-so-after-compiling-td6671937.html

 5
Author: durkinza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-15 01:23:06

Miałem podobny problem, gdy ręcznie skonfigurowałem CMAKE na OSX El Capitan. Dałem tę dodatkową opcję:

PYTHON2_PACKAGES_PATH='lib/python2.7/site-packages'

Który zatrzymał cv2.so w tym pakiecie od instalacji. Wydaje się, że instaluje się poprawnie w moim folderze build po usunięciu go:

PYTHON2_EXECUTABLE='/usr/bin/python2.7'
PYTHON2_INCLUDE_DIR='/usr/include/python2.7'
PYTHON2_LIBRARY='/usr/lib/libpython2.7.dylib' # TODO - Fix for linux
PYTHON2_NUMPY_INCLUDE_DIRS='/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include' # Todo - Fix for linux


cd $OPENCV_DIR

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$OPENCV_INSTALL_PATH \
                                  -D WITH_CUDA=OFF \
                                  -D BUILD_opencv_python2:BOOL=ON \
                                  -D PYTHON2_EXECUTABLE=$PYTHON2_EXECUTABLE \
                                  -D PYTHON2_INCLUDE_DIR=$PYTHON2_INCLUDE_DIR \
                                  -D PYTHON2_LIBRARY=$PYTHON2_LIBRARY \
                                  -D PYTHON2_NUMPY_INCLUDE_DIRS=$PYTHON2_NUMPY_INCLUDE_DIRS \
                                  -D INSTALL_PYTHON_EXAMPLES:BOOL=ON \
                                  ..
make -j8
make install
 3
Author: ssk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-03 19:58:41

Mam taki problem w moim OS X El Capitan.

Wykonałem instrukcje wymienione w ten tutorial. Nie uzyskał pomyślnej działającej instalacji i miał powyższy błąd braku cv2.so plik w wymaganych folderach wymienionych oraz w wierszu python.

W końcu zorientowałem się, że używanie wirtualnej konfiguracji Pythona sprawiało kłopoty. Więc Odinstaluj za pomocą

pip install virtualenv virtualenvwrapper

Then ran

brew link opencv

Który wyrzucił błędy.

A następnie wykonaj poniższe kroki aby rozwiązać problem.

Pierwszy bieg

brew link opencv

Jeśli to daje błąd, spróbuj zautomatyzowanej diagnozy

brew doctor

brew doctor podaje listę problemów, które mogą prowadzić do błędów w procesie instalacji.

Aby naprawić problemy w przypadku kolidujących plików, Uruchom, Aby uzyskać listę wszystkich działań, które zostaną wykonane przez nadpisanie bez ich rzeczywistego wykonania.

Aby wyświetlić listę wszystkich plików, które zostaną usunięte:

  brew link --overwrite --dry-run opencv

Po którym następuje ten bieg, który będzie wykonaj nadpisanie, zakładając, że uważasz, że działania wykonywane przez nadpisanie doprowadzą Twój system do bardziej stabilnego stanu .

Aby wymusić link i nadpisać wszystkie sprzeczne pliki:

 brew link --overwrite opencv

Ten samouczek jest prostszą alternatywą.

 2
Author: Vinay Vemula,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-14 15:20:41

Żaden z powyższych nie działał dla mnie; jestem w Ubuntu 16.04 na instancji ec2 i miałem zainstalowaną anacondę, więc po prostu użyłem

conda install opencv zarówno dla moich instalacji conda2 jak i 3

 2
Author: E. Case,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 20:50:49

Wszystkie powyższe odpowiedzinie zadziałały dla mnie , jednak po całym dniu zmagań w końcu rozwiązałem ten problem.

Mieć cv2.so, potrzebujemy:

  1. co najmniej zainstalowany python 2 lub 3. dlatego ludzie mówią: sudo apt-get install python-dev. Ale to jest niepotrzebne , w moim przypadku używam Anaconda python . (istnieje wiele sposobów na zainstalowanie Pythona)
  2. numpy jest również koniecznością. niezależnie od tego, jakiego Pythona używasz, upewnij się, że go pobrałeś. W moim przypadku używam anaconda numpy. (anaconda ma już zainstalowany, dla zwykłego Pythona użyj pip install numpy)

Aby powiedzieć camke, gdzie jest ścieżka, Weź moje polecenie jako przykład:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
      -D PYTHON2_EXECUTABLE='/home/parallels/anaconda2/bin/python' \
      -D PYTHON2_LIBRARY='/home/parallels/anaconda2/lib/python2.7' \
      -D PYTHON2_NUMPY_INCLUDE_DIRS='/home/parallels/anaconda2/lib/python2.7/site-packages/numpy/core/include' \
      -D BUILD_EXAMPLES=ON ..

Dla python3,powinieneś (używam Pythona anaconda, więc wszystko podlinkowałem do anacondy):

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.3.1/modules \
      -D PYTHON3_EXECUTABLE='/home/test/SoftWare/anaconda3/bin/python3.6m' \
      -D PYTHON_INCLUDE_DIR='/home/test/SoftWare/anaconda3/include/python3.6m' \
      -D PYTHON3_LIBRARY='/home/test/SoftWare/anaconda3/lib/libpython3.6m.so' \
      -D PYTHON3_NUMPY_INCLUDE_DIRS='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages/numpy/core/include' \
      -D PYTHON3_PACKAGES_PATH='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages' ..

Jedna rzecz do zapamiętania !!! zanim wejdziesz do cmake ... 1. wyczyść folder budowania, 2. tylko raz camke! w przeciwnym razie nie możesz Zmień * * PYTHON3_LIBRARY: nie**...(to chyba błąd)

Wiem, że mogą być jakieś bezużyteczne argumenty, ale jestem zmęczony, próbując je wyczyścić. Oto zrzut ekranu z moich informacji o druku cmake. zrzut ekranu mojego cmake info

Widać wyraźnie, że tylko python2 może wygenerować cv2.so python3 nie może! (Nie można wygenerować wrapperów Python3).

 2
Author: craig zhang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-08 03:49:40

Natknąłem się na podobny problem. Po zagłębianiu się w to trochę więcej natknąłem się na post, w którym wspomniano, że pakiet python-numpy jest wymagany. Tak więc odinstalowałem opencv, uruchamiając następujące polecenie w folderze build (w Twoim przypadku folder release):

dpkg -r build

Potem usunąłem wszystkie pliki opencv. Zainstalowałem python-numpy i python-dev tą komendą:

sudo apt-get install python-dev python-numpy

Następnie, po ponownym uruchomieniu skryptu instalacyjnego, polecenie import cv2 w konsoli Pythona nie daje mi żadnego błędu i jest odpowiednio importowane.

 0
Author: skadoosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-14 19:35:44

W moim przypadku był to problem z cmake:

sudo apt install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt update

Jeśli cmake nie jest jeszcze zainstalowany:

sudo apt install cmake

Jeśli cmake jest już zainstalowany:

sudo apt upgrade

Aby uzyskać więcej informacji, zobacz ten link .

 0
Author: Евгений Смирнов,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-16 23:38:07