Почему 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? И почему это было пропущено?
Ответы
Ответ 1
Как установить opencv (cv2) с привязками python в Linux - Ubuntu/Fedora
-
Установите gcc, g++/gcc-С++, cmake (apt-get или yum, в случае yum используйте gcc-С++)
apt-get install gcc, g++, cmake
-
Загрузите последнюю версию opencv с сайта openCV
-
Распакуйте его с
tar -xvf opencv-*
-
Внутри неповрежденной папки создайте новую папку с именем 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 ..
..
вытянет файлы из родительской папки и подготовит систему к установке на вашей платформе.
-
в папке релиза запустите
make
-
Примерно через 2-3 минуты после завершения процесса обработки.
sudo make install
-
Экспорт пути 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, нам нужно:
- По крайней мере, Python 2 или 3 установлены. вот почему люди говорят:
sudo apt-get install python-dev
. Но в этом нет необходимости, в моем случае я использую Anaconda Python. (Есть много способов установить Python) - 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 не могут быть сгенерированы).