32

我想将所有内容保留在 virtualenv 中。这对 OpenCV 可行吗?我可以从头开始构建,我只需要先设置 virtualenv 然后使用特殊的编译标志来告诉它安装到哪里?

4

4 回答 4

43

我发现解决方案是我必须将 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
于 2012-08-20T18:35:56.380 回答
5

从 opencv安装指南

默认情况下,OpenCV 构建系统将选择它可以找到的最新版本的 Python,或者您可以在调用 cmake 时使用 PYTHON_EXECUTABLE 变量强制它使用特定版本。)

我刚刚按照上面链接上的说明将它安装在我的 ubuntu 11.10 上的虚拟 env --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
于 2012-04-13T17:32:15.183 回答
4

在 Debian 上,我安装了 python-opencv、python-virtualenv、python-pip,然后使用选项 --system-site-packages 创建了一个 virtualenv。

于 2016-07-01T09:16:27.660 回答
0

这可以通过将 python 可执行文件作为参数传递给 cmake 来实现。我还建议使用本地安装文件夹,因此您根本不需要 sudo。然后,如果 make install 不要求您提供 sudo 权限,它可能是针对您的 virtualenv python 。

使用 cmake-gui 打开 cmakelists.txt 以查看 python 变量。如果你的 virtualenv 中没有 numpy,它也可能会出错,这样你就知道它选择了正确的 python。这也适用于独立于 python 版本,因为它是专门为你的 python 可执行文件构建的

于 2018-12-04T13:05:11.540 回答