2013-06-25 82 views
5

Tôi có hai phiên bản python khác nhau được cài đặt trên máy của tôi: 2,4 và 2,7. Tôi đang cố gắng để cài đặt OpenCV (2.4.5) cho phiên bản 2.7.Cài đặt OpenCV cho Python (nhiều phiên bản python)

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON .. 

Nó phát hiện python 2.4 như quá trình cài đặt hiện tại:

-- Python: 
--  Interpreter:     /usr/bin/python2.4 (ver 2.4) 
--  Libraries:     /usr/lib64/python2.4/config/libpython2.4.a 
--  numpy:      /usr/lib64/python2.4/site-packages/numpy/core/include (ver 1.2.1) 
--  packages path:    lib/python2.4/site-packages 

và sau này trong việc xây dựng opencv mang lại cho tôi lỗi này:

[ 75%] Generating pyopencv_generated_funcs.h, pyopencv_generated_func_tab.h, pyopencv_generated_types.h, pyopencv_generated_type_reg.h, pyopencv_generated_const_reg.h 
    File "/home/mmoghimi/opencv-2.4.5/modules/python/src2/gen2.py", line 815 
    cname1=("cv::Algorithm" if classinfo.isalgorithm else classinfo.cname))) 
          ^
SyntaxError: invalid syntax 
make[2]: *** [modules/python/pyopencv_generated_funcs.h] Error 1 
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2 
make: *** [all] Error 2 

dường như nó sử dụng một định dạng mới mà python2. 4 không hỗ trợ. Vì vậy, câu hỏi của tôi là có cách nào để xác định rõ ràng phiên bản của python?

Trả lời

15

Có một số cờ Cmake cho phép bạn chỉ định rõ phiên bản Python nào cần sử dụng. Bạn sẽ cần phải thiết lập các giá trị của các cờ này đến đúng vị trí để cài đặt Python của bạn.

Tên cờ và các địa điểm có khả năng là dưới đây:

PYTHON_EXECUTABLE=/usr/bin/python2.7/ 
PYTHON_INCLUDE=/usr/include/python2.7/ 
PYTHON_LIBRARY=/usr/lib/libpython2.7.a //or .so for shared library 
PYTHON_PACKAGES_PATH=/usr/local/lib/python2.7/site-packages/ 
PYTHON_NUMPY_INCLUDE_DIR=/usr/local/lib/python2.7/dist-packages/numpy/core/include 

Nếu những con đường không làm việc, bạn sẽ cần phải xác định vị trí chúng trên máy tính của bạn.

+0

Yeap. Đó là chính xác những gì tôi cuối cùng đã làm. http://www.megalinux.net/compiling-opencv-2-4-on-rhelcentos-5/ –

+0

Ngoài ra. Tôi đã phải thay đổi dòng đầu tiên trong các mô-đun/python/src2/cv2.cpp từ Python.h thành #include. Nếu không, tôi nghĩ rằng nó đã được tìm Python.h từ việc cài đặt 2.4. –

+3

Trong CMake GUI, những lá cờ này (hầu hết trong số chúng) bị ẩn trừ khi bạn đánh dấu chọn "Advanced". – lapis

2

Sử dụng virtualenv

virtualenv -p python2.7 env 
source env/bin/activate 
python --version # prints «Python 2.7.3» 
pip install pyopencv 

Nếu bạn cần hỗ trợ 2,4 (hoặc phiên bản khác), chỉ cần tạo môi trường mới.

+0

Tôi gặp phải lỗi này: Không tìm thấy bản phân phối nào cho opencv –

+0

Tôi cũng cố gắng chạy lại cmake trong môi trường ảo, tôi cũng không làm việc. Tìm thấy python 2.4 –

+0

Uh ... được rồi. Đây là lỗi của tôi, tên gói OpenCV thực là pyopencv. –

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