Подтвердить что ты не робот

Почему cv2.so отсутствует после установки opencv?

Сегодня я установил opencv 2.4.4 в Ubuntu 12.10

Но импорт cv2 не работает.

[email protected]:~# 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
>>> 

Как я понимаю, cv2.so пропущен, поэтому python не видит, где opencv

[email protected]:~# find / -name "cv.py"
/root/opencv-2.4.4/modules/python/src2/cv.py
[email protected]:~# find / -name "cv2.so"
[email protected]:~#

Мои шаги настройки выглядят как

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

Где cv2.so? И почему это было пропущено?

4b9b3361

Ответ 1

Как установить opencv (cv2) с привязками python в Linux - Ubuntu/Fedora

  1. Установите gcc, g++/gcc-С++, cmake (apt-get или yum, в случае yum используйте gcc-С++)

    apt-get install gcc, g++, cmake
    
  2. Загрузите последнюю версию opencv с сайта openCV

  3. Распакуйте его с

    tar -xvf opencv-*
    
  4. Внутри неповрежденной папки создайте новую папку с именем release

    mkdir release
    cd release
    

    (или любое имя папки) и выполните в нем эту команду

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

    .. вытянет файлы из родительской папки и подготовит систему к установке на вашей платформе.

  5. в папке релиза запустите

    make
    
  6. Примерно через 2-3 минуты после завершения процесса обработки.

    sudo make install
    
  7. Экспорт пути Python

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

Вот оно, теперь иди на питон и попробуй

>>> import cv2

Вы не должны получать никаких сообщений об ошибках.

Протестировано на python 2.7, должно быть практически аналогично python 3.x.

Ответ 2

Я устанавливаю python-opencv для решения моей проблемы в Ubuntu 14.04 sh sudo apt-get install python-opencv

Ответ 3

Используя raspbian на rasberry pi, у меня возникла проблема с тем, что модуль не был найден. У меня было три версии python (2.6, 2.7 и 3.2), убедитесь, что вы используете python2.7. Вы можете проверить это, выполнив:

python --version

Я обнаружил, что для моего случая просто было нужно установить python-dev.

sudo apt-get install python-dev

Мне не нужно было удалять и переустанавливать opencv, я старался изо всех сил избегать этого, зная, что для завершения процесса требуется несколько часов.

После установки python-dev я пошел в файл, в который я построил opencv, для меня это было "~/opencv-2.4.9/release", и сказал ему сделать

sudo make

после этого я смог найти файл cv2.so. ищите его с помощью:

find / -name "cv2.so"

В этот момент я нашел несколько файлов. next Я запускал только python, чтобы узнать, может ли он найти "импортировать" их

python 
>>> import cv2

Ошибки не появятся.

>>> import numpy

Я слышал, что numyp необходимо для запуска opencv. Оттуда я считаю, что вы должны быть хорошо, чтобы запустить script, если ошибок не возникает. Надеюсь, это поможет.

Страница, которая мне помогла, указана в списке...

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

Ответ 4

У меня есть эта проблема в моей OS X El Capitan.

Я выполнил инструкции, упомянутые в этот учебник. Не удалось получить успешную рабочую установку и имела указанную выше ошибку отсутствующего файла cv2.so в требуемых папках Этот учебник является более простой альтернативой.

Ответ 5

У меня была аналогичная проблема, когда я вручную настраивал CMAKE на OSX El Capitan. Я дал этот дополнительный вариант:

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

который остановил cv2.so в этом пакете от установки. Кажется, он правильно установлен в моей папке сборки после того, как я удалил его:

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

Ответ 6

Ни одно из вышеперечисленных не работало для меня; я в Ubuntu 16.04 на экземпляр ec2 и установил anaconda, поэтому я просто использовал

conda install opencv для моих установок conda2 и 3

Ответ 7

Я столкнулся с подобной проблемой. Покопавшись в этом немного больше, я наткнулся на почту, где было упомянуто, что пакет python-numpy требуется. Итак, я удалил opencv, выполнив следующую команду в папке сборки (в папке выпуска вашего случая):

dpkg -r build

Затем я удалил все файлы opencv. Я установил python-numpy и python-dev с помощью этой команды:

sudo apt-get install python-dev python-numpy

Затем после повторного запуска установки script, import cv2 команда в консоли python не дает мне никаких ошибок и импортируется правильно.

Ответ 8

В моем случае это была проблема с cmake:

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

Если cmake еще не установлен:

sudo apt install cmake

Если cmake уже установлен:

sudo apt upgrade

Для получения дополнительной информации см. Эту ссылку.

Ответ 9

Все вышеперечисленные ответы не спомогли мне, однако, после целого дня борьбы, я наконец решил эту проблему.

Чтобы иметь cv2.so, нам нужно:

  1. По крайней мере, Python 2 или 3 установлены. вот почему люди говорят: sudo apt-get install python-dev. Но в этом нет необходимости, в моем случае я использую Anaconda Python. (Есть много способов установить Python)
  2. Numpy также является обязательным. Итак, какой бы Python вы ни использовали, просто убедитесь, что он загружен. В моем случае я использую анаконду numpy. (у anaconda он уже установлен, для обычного python используйте pip install numpy)

Чтобы сказать camke, где находится путь, просто возьмите мою команду в качестве примера:

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

для python3 , вы должны (я использую anaconda python, поэтому я связал все с anaconda):

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' ..

Одна вещь, которую нужно помнить !!! прежде чем войти в cmake... 1. почистите папку для сборки, 2. только один раз! в противном случае вы не можете изменить ** PYTHON3_LIBRARY: NO **... (это ошибка, я думаю)

Я знаю, что могут быть бесполезные аргументы, но я устала пытаться их убрать. Вот скриншот моей информации о печати cmake. скриншот моей информации о cmake

Вы можете ясно видеть, что только python2 может генерировать cv2.so. Python3 не может! (Обертки Python3 не могут быть сгенерированы).