簡體   English   中英

是否可以從 virtualenv 運行 opencv(python 綁定)?

[英]Is it possible to run opencv (python binding) from a virtualenv?

我想將所有內容都包含在 virtualenv 中。 這可以用 OpenCV 實現嗎? 我可以從頭開始構建,我是否只需要先設置 virtualenv 然后使用特殊的編譯標志來告訴它安裝到哪里?

我發現解決方案是我必須將 cv2.so 和 cv.py 復制到運行 virtualenv 的目錄,然后 pip install numpy。 為了在我使用的 Ubuntu 12.04 上做到這一點。

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

從 opencv安裝指南

默認情況下,OpenCV 構建系統將選擇它可以找到的最新版本的 Python,或者您可以在調用 cmake 時使用 PYTHON_EXECUTABLE 變量強制它使用特定版本。)

我剛剛按照上面鏈接中的說明將它安裝在我的 ubuntu 11.10 虛擬環境 --with-no-site-package 上。 你需要構建整個opencv。 和它的 python 包裝器在一起。

編輯 1:

  1. 創建一個臨時目錄,我們將其表示為 ,您要在其中放置生成的 Makefile、項目文件以及目標文件和輸出二進制文件。

     cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
  2. 進入創建的臨時目錄 () 並繼續:

     make sudo make install

---------

構建和安裝后,在 PYTHON_PATH 上添加擴展模塊

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

在 Debian 上,我 apt 安裝了 python-opencv、python-virtualenv、python-pip,然后使用選項 --system-site-packages 創建了一個 virtualenv。

這可以通過將 python 可執行文件作為參數傳遞給 cmake 來實現。 我還建議使用本地安裝文件夾,因此您根本不需要 sudo。 然后,如果 make install 沒有要求您提供 sudo 權限,則它可能針對您的 virtualenv python 。

使用 cmake-gui 打開 cmakelists.txt 以查看 python 變量。 如果您的 virtualenv 中沒有 numpy,它也可能會出錯,這樣您就知道它選擇了正確的 python。 這也適用於獨立於 python 版本,因為它是專門為您的 python 可執行文件構建的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM