2012-06-25 5 views
14

Ubuntu Server 12.04의 virtualenv 내에 OpenCV를 설치하려고합니다. a thread discussing this을 찾았지만 정보를 추출하지 못했습니다.Python virtualenv에서 OpenCV 실행

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을 두 번째 실행하는 경우에만 발생합니다. 내가 reminginging 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's 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 

내 virtualenv 내에 어떻게 OpenCV를 설치할 수 있습니까?

+0

. 나는 'pyopencv'가이 프로젝트 http://code.google.com/p/pyopencv/에 해당하고 opencv 2.X와 함께 제공되는 Python 바인딩이 아니라는 것을 알아 차렸습니다. –

답변

13

가상 가이드를 실행하고이 가이드에 따라 : http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/, cv 공유 객체를 조작하고 복사 할 때까지. 대신, 나는 내 virtualenv 사이트 패키지 (예 : env/lib/python2.7/site-packages /)에 cv.so (내 OpenCV-2.2.0/lib 디렉토리에서)를 복사했습니다. 일단 내 환경에 cv.so가 있으면, 파이썬에서 CV를 가져올 수있었습니다.

+1

감사합니다. 공유 객체를 복사하는 것은 내가했던 것입니다. 있어야 할 곳에 없는!차이점은/usr/lib/pymodules에있는 cv.py [c] 및 cv2.so를 https://github.com/ingenuitas/SimpleCV#installation –

0

이미 apt-get build-dep python-opencv이십니까? 이렇게하면 소스에서 빌드하기 위해 필요한 모든 종속 항목이 설치됩니다. 가상 환경에 설치하려는 경우 필요합니다.

+0

에 비슷한 내용으로 복사했습니다. opencv.i386 : 알고리즘 모음 컴퓨터 비전 용 opencv-devel.i386 : OpenCV 라이브러리를 사용하기위한 개발 파일 opencv-python.i386 : OpenCV를 사용하는 응용 프로그램에 대한 Python 바인딩 Fedora를 사용하는 경우 오류는 다음과 같습니다. "/ include/C++/4.3.2/bits/stl_move.h : 87 : 오류 :이 컨텍스트 내에서 "virtualenv.py를 사용합니다. –

+0

@CatalinFestila 귀하의 질문이이 주제와 다른 내용이므로 다른 토론을 열어야합니다. –

9

다음은 pyenv 및 virtualenv 플러그인을 사용하는 가장 깨끗한 방법입니다.

공유 라이브러리를 지원하는 Python을 설치하십시오. (Mac OS X에서는 libpython2.7.dylib를, Linux에서는 libpython2.7.so를 얻습니다.)

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -v 2.7.6 

방금 ​​설치 한 python의 버전을 기준으로 virtualenv를 만듭니다.

pyenv virtualenv 2.7.6 myvirtualenv 

virtualenv를 활성화하십시오.

pyenv shell myvirtualenv 
pyenv rehash 

numpy를 설치하십시오. 그렇지 않으면 opencv가 파이썬에 올바르게 링크되지 않습니다.

pip install numpy 

python 설치의 접두사를 설정하십시오.

PREFIX_MAIN=`pyenv virtualenv-prefix` 

환경의 접두사를 설정하십시오. 이 pyenv 명령의 이름은 약간 기만적입니다.)

PREFIX=`pyenv prefix` 

이제 opencv를 구성하고 설치하십시오. opencv 바이너리와 패키지는 virtualenv에 설치되고 동적 라이브러리와 Python 설치의 include가 사용됩니다.

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.dylib와 libpython2.7.so 대체합니다.) 나는이 같은 문제가 발생하고있어

관련 문제