2012-06-25 39 views
14

Tôi đang cố gắng cài đặt OpenCV trong một virtualenv trên Máy chủ Ubuntu 12.04 của tôi. Tôi đã tìm thấy a thread discussing this nhưng đã quản lý để trích xuất không có thông tin từ nó.Chạy OpenCV từ một virtualenv Python

Tôi đã thử sử dụng pip install pyopencv nhưng không thành công.

... 
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 

Lỗi này chỉ xảy ra lần thứ hai tôi chạy pip install. Nếu tôi xóa thư mục remainging build/ tôi nhận được lỗi này.

-- 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 

Tôi đã cài đặt ít nhất các gói apt sau.

build-essential 
uuid-dev 
python-dev 
python-pip 
libpq-dev 
cmake 
libboost-dev 
libcv-dev 
libcvaux-dev 
libboost-python-dev 
libboost1.48-dev 

Làm cách nào để cài đặt OpenCV trong virtualenv của tôi?

+0

Tôi đang gặp vấn đề tương tự. Tuy nhiên, tôi nhận thấy rằng 'pyopencv' tương ứng với dự án này http://code.google.com/p/pyopencv/ và không phải là các ràng buộc python đi kèm với opencv 2.X –

Trả lời

13

Đã khởi chạy virtualenv và làm theo hướng dẫn này: http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/, cho đến khi thao tác và sao chép các đối tượng được chia sẻ cv. Thay vào đó, tôi đã sao chép cv.so (từ thư mục OpenCV-2.2.0/lib) vào các gói trang web virtualenv của tôi (ví dụ: env/lib/python2.7/site-packages /). Khi cv.so ở trong môi trường của tôi, tôi có thể nhập cv trong python.

+1

Cảm ơn, sao chép các đối tượng được chia sẻ là những gì tôi đã còn thiếu!Chỉ có sự khác biệt là tôi đã sao chép cv.py [c] và cv2.so từ/usr/lib/pymodules, analagous đến https://github.com/ingenuitas/SimpleCV#installation –

0

Bạn đã từng là apt-get build-dep python-opencv? Điều này sẽ cài đặt tất cả các phụ thuộc cần thiết để xây dựng nó từ nguồn; mà bạn cần nếu bạn đang cố gắng cài đặt nó trong một môi trường ảo.

+0

Tôi có tất cả opencv.i386 này: Thu thập các thuật toán cho tầm nhìn máy tính opencv-devel.i386: Tệp phát triển để sử dụng thư viện OpenCV opencv-python.i386: Ràng buộc Python cho các ứng dụng sử dụng OpenCV Tôi sử dụng Fedora, lỗi là: "/ include/C++/4.3.2/bits/stl_move.h: 87: error: trong ngữ cảnh này "Tôi sử dụng virtualenv.py. –

+0

@CatalinFestila bạn nên mở một cuộc thảo luận khác vì câu hỏi của bạn khác với câu hỏi này. –

9

Đây là cách sạch nhất, sử dụng pyenv và trình cắm thêm virtualenv.

Cài đặt Python với hỗ trợ thư viện được chia sẻ (vì vậy chúng tôi nhận được libpython2.7.dylib trên Mac OS X hoặc libpython2.7.so trên Linux).

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

Tạo virtualenv, dựa trên phiên bản python mà chúng tôi vừa cài đặt.

pyenv virtualenv 2.7.6 myvirtualenv 

Kích hoạt virtualenv.

pyenv shell myvirtualenv 
pyenv rehash 

Cài đặt gọn gàng. Nếu không thì opencv sẽ không tự liên kết chính nó với Python.

pip install numpy 

Đặt tiền tố của cài đặt python.

PREFIX_MAIN=`pyenv virtualenv-prefix` 

Đặt tiền tố của môi trường. (Sic! Tên của các lệnh này pyenv là một chút lừa đảo!)

PREFIX=`pyenv prefix` 

Bây giờ cấu hình và cài đặt opencv. Lưu ý rằng các gói và gói nhị phân opencv sẽ được cài đặt trong virtualenv của chúng tôi trong khi thư viện động và bao gồm cài đặt Python được sử dụng.

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 

(Ngày OSX, thay thế libpython2.7.so với libpython2.7.dylib.)

Các vấn đề liên quan