Запуск OpenCV из виртуального виджета Python
Я пытаюсь установить OpenCV в virtualenv на моем Ubuntu Server 12.04. Я нашел поток, обсуждающий этот вопрос, но не смог извлечь из него никакой информации.
Я попытался использовать pip install pyopencv
, но это не удалось.
...
package/extras/core/ndarray.cpp:598:1: instantiated from here
package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]
package/extras/core/ndarray.cpp: In function ‘boost::python::api::object sdcpp::from_ndarray_impl(const sdcpp::ndarray&) [with T = cv::Scalar_<double>]’:
package/extras/core/ndarray.cpp:601:1: instantiated from here
package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]
package/extras/core/ndarray.cpp: In function ‘boost::python::api::object sdcpp::from_ndarray_impl(const sdcpp::ndarray&) [with T = cv::Range]’:
package/extras/core/ndarray.cpp:604:1: instantiated from here
package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]
error: command 'gcc' failed with exit status 1
Эта ошибка возникает только во второй раз, когда я запускаю pip install
. Если я удалю пересоздание папки build/
, я получаю эту ошибку.
-- Configuring incomplete, errors occurred!
Configuring PyOpenCV via CMake...
Error: error occurred while running CMake to configure PyOpenCV.
You may want to manually configure PyOpenCV by running cmake tools:
mkdir build
cd build
cmake-gui .. OR cmake ..
cd ..
----------------------------------------
Command python setup.py egg_info failed with error code 255
У меня есть как минимум следующие apt-пакеты.
build-essential
uuid-dev
python-dev
python-pip
libpq-dev
cmake
libboost-dev
libcv-dev
libcvaux-dev
libboost-python-dev
libboost1.48-dev
Как я могу установить OpenCV в свой virtualenv?
Ответы
Ответ 1
Запустил виртуальную машину и последовал этому руководству: http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/, до манипулирования и копирования общих объектов cv. Вместо этого я скопировал cv.so(из моего каталога OpenCV-2.2.0/lib) в мои виртуальные сайты-пакеты (например, env/lib/python2.7/site-packages/). Как только cv.so был в моей среде, я смог импортировать cv внутри python.
Ответ 2
Вот самый чистый способ, используя pyenv и подключаемый модуль virtualenv.
Установите Python с поддержкой общей библиотеки (поэтому мы получаем libpython2.7.dylib для Mac OS X или libpython2.7.so в Linux).
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -v 2.7.6
Создайте virtualenv на основе версии python, которую мы только что установили.
pyenv virtualenv 2.7.6 myvirtualenv
Активируйте virtualenv.
pyenv shell myvirtualenv
pyenv rehash
Установить numpy. В противном случае opencv не сможет правильно связать себя с Python.
pip install numpy
Установите префикс установки python.
PREFIX_MAIN=`pyenv virtualenv-prefix`
Установите префикс среды. (sic! Название этих команд pyenv немного обманчиво!)
PREFIX=`pyenv prefix`
Теперь настройте и установите opencv. Обратите внимание, что бинарные файлы и пакеты opencv будут установлены в нашем virtualenv, в то время как динамическая библиотека и включает в себя установку Python.
cd openCV2.4
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX="$PREFIX" -DPYTHON_EXECUTABLE="$PREFIX"/bin/python2.7 -DPYTHON_LIBRARY="$PREFIX_MAIN"/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR="$PREFIX_MAIN"/include/python2.7 -DPYTHON_PACKAGES_PATH="$PREFIX"/lib/python2.7/site-packages/ ..
make install
(В OSX замените libpython2.7.so на libpython2.7.dylib.)
Ответ 3
Вы уже apt-get build-dep python-opencv
? Это позволит установить все необходимые зависимости для его создания из источника; который вам нужен, если вы пытаетесь установить его в виртуальной среде.