2012-03-06 33 views
31

Tôi muốn giữ mọi thứ có trong virtualenv. Điều này có thể xảy ra với OpenCV không? Tôi tốt với xây dựng từ đầu, tôi chỉ cần thiết lập virtualenv đầu tiên sau đó sử dụng cờ biên dịch đặc biệt để cho nó biết nơi để cài đặt vào?Có thể chạy opencv (python binding) từ virtualenv không?

+0

os/dictribution bạn đang sử dụng là gì? – pylover

+0

Ubuntu 11.10. Tôi đã thử bằng cách sử dụng CÀI ĐẶT INSTALL PREFIX nhưng dường như không muốn thực sự cài đặt vào thư mục cục bộ đó. – xamox

+0

tôi cũng sử dụng ubuntu 11.10. chờ đợi để tôi cố gắng để cài đặt nó trong một env ảo. – pylover

Trả lời

35

Tôi đã tìm ra giải pháp là tôi đã phải sao chép qua cv2.so và cv.py vào thư mục đang chạy virtualenv, sau đó pip install numpy. Để làm điều này trên Ubuntu 12.04 tôi đã sử dụng.

virtualenv virtopencv 
cd virtopencv 
cp /usr/local/lib/python2.7/dist-packages/cv* ./lib/python2.7/site-packages/ 
./bin/pip install numpy 
source bin/activate 
python 
import cv 
+2

Nhưng điều này không thực sự giúp bạn triển khai tự động đúng không? Vì bạn vẫn cần có tệp .so phù hợp cho hệ thống cụ thể của bạn. –

+1

Điều này đúng, tôi thấy bạn cũng có thể liên kết các tệp .so cũng như vậy về cơ bản nó hoạt động tốt miễn là liên kết tượng trưng sống ở cùng một vị trí bất kể phiên bản OpenCV bạn đang sử dụng. Một mặt trái mặc dù virtualenv dường như không thể chuyển sang máy khác ngay cả khi sử dụng cờ --relocatable, vì vậy nó thực sự chỉ hữu ích trong cá thể tôi muốn sử dụng các thư viện python khác với những gì được cài đặt trên hệ thống. – xamox

+0

Cách gọn gàng nhất, không cần phải sao chép hoặc liên kết cứng bất cứ thứ gì: http://stackoverflow.com/a/24112175/562816 –

5

Từ opencv install guide:

By default the OpenCV build system will choose the most recent version of Python that it can find, or you can force it to use a specific version using the PYTHON_EXECUTABLE variable when you invoke cmake.)

Tôi chỉ cần cài đặt nó trên ubuntu của tôi 11.10, trên env ảo --with-no-site-package, bằng cách làm theo hướng dẫn trên diễn đàn. bạn cần phải xây dựng toàn bộ opencv. và gói python của nó với nhau.

EDIT 1:

  1. Tạo một thư mục tạm thời, mà chúng biểu thị như, nơi bạn muốn đặt Makefiles tạo ra, dự án tập tin cũng như các đối tượng tập tin và tập tin nhị phân đầu ra.

    cd ~/opencv 
    mkdir release 
    cd release 
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 
    
  2. Nhập thư mục tạm thời tạo() và điền đầy đủ:

    make 
    sudo make install 
    

---------

sau khi xây dựng & cài đặt thêm các mô-đun mở rộng trên PYTHON_PATH

export PYTHONPATH=~/projects/opencv/release/lib:$PYTHONPATH 
+0

Tôi đã làm theo các bước tương tự mà bạn đã đề cập. sau khi "sudo make install", tôi nhận được một thông báo rằng nó đã được cài đặt thành công. Tuy nhiên, khi tôi nhập opencv2 trong python tôi nhận được một lỗi nhập khẩu. Bất kỳ ý tưởng những gì tôi nên làm gì? – MAS

+0

Đảm bảo PYTHONPATH của bạn được trỏ tới opencv như đã đề cập trong bài đăng này – pylover

+0

Tôi đã thêm nó vào tệp .bash_profile của tôi. khi tôi làm "pip đóng băng" trong virtualenv của tôi tôi không thấy opencv.I tìm thấy điều này lạ – MAS

2

trên Debian, tôi apt cài đặt python-opencv, python-virtualenv, python-pip và sau đó tạo ra một virtualenv sử dụng tùy chọn --system-site-gói.

+0

Làm việc như một sự quyến rũ – alan

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