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

Запуск 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?

4b9b3361

Ответ 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? Это позволит установить все необходимые зависимости для его создания из источника; который вам нужен, если вы пытаетесь установить его в виртуальной среде.