Использование python с определенной версией OpenCV

В настоящее время я работаю над проектом, который добавляет новый модуль в бета-версию OpenCV 3.0, поэтому я пытаюсь использовать свою собственную скомпилированную версию с Python (как примечание, версия C++ работает).

Поскольку я не хочу путаться с уже установленными версиями OpenCV и Python, я не добавлял в ldconfig мою конкретную сборку/установку бета-версии OpenCV 3.0, и я хотел бы использовать ее в python virtualenv, если это возможно.

Пока я настроил venv, и, поскольку cv2 в нем недоступен, я обновляю PYTHONPATH, чтобы добавить папку, содержащую файл cv2.so (созданный с помощью sudo apt-get install python-opencv). Однако загружается неправильная версия привязки opencv:

$ python -c "import cv2; print cv2.__version__"
2.4.8

Есть идеи, что я могу сделать?

РЕДАКТИРОВАТЬ (спасибо @otibom):

Моя сборка, кажется, является причиной того, что у меня нет правильного файла cv2.so. Результаты cmake:

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   NO
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages

Есть ли способ исправить это?


person Matthieu Pizenberg    schedule 29.05.2015    source источник


Ответы (2)


Компиляция OpenCV 3.0 создаст собственный файл cv2.so, содержащий ваш новый модуль, обычно в вашем каталоге opencv3-0-0-beta/build. Вам нужно добавить каталог сборки OpenCV 3.0 в PYTHONPATH вместо того, который был создан apt-get.

person fouronnes    schedule 29.05.2015
comment
Спасибо, это помогает, что вы подтверждаете это. На самом деле я понял, что этот файл не создается с моей сборкой. Это может быть потому, что я думаю, что у меня есть другая проблема (только что понял, так как раньше я не использовал OpenCV с Python): cmake находит двоичные файлы Python, но не библиотеки. Я обновлю свой вопрос, чтобы было понятнее - person Matthieu Pizenberg; 29.05.2015
comment
На самом деле я решил проблему с поиском библиотеки и перекомпилировал, но я не нашел этот файл в каталоге сборки: find -iname "cv2.so" мне ничего не дал. Где именно он должен быть? - person Matthieu Pizenberg; 29.05.2015
comment
Неважно, я забыл скомпилировать в режиме RELEASE, может поэтому файл не сгенерировался - person Matthieu Pizenberg; 29.05.2015

Что касается проблемы «библиотеки не найдены», я удалил файл CMakeCache.txt, и при следующей команде cmake он нашел библиотеки python. (но я понятия не имею, почему это произошло)

person Matthieu Pizenberg    schedule 29.05.2015
comment
У меня была такая же проблема под Windows (библиотека Python постоянно отключается); в конце концов, я взглянул на CMakeLists.txt модуля Python и обнаружил, что включение опции Build_opencv_world отключит библиотеку Python. - person JPNotADragon; 07.01.2017