我想将所有内容保留在 virtualenv 中。这对 OpenCV 可行吗?我可以从头开始构建,我只需要先设置 virtualenv 然后使用特殊的编译标志来告诉它安装到哪里?
4 回答
我发现解决方案是我必须将 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 上的虚拟 env --with-no-site-package 上。你需要构建整个opencv。和它的 python 包装器在一起。
编辑1:
创建一个临时目录,我们将其表示为 ,您要在其中放置生成的 Makefile、项目文件以及目标文件和输出二进制文件。
cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
进入创建的临时目录(),继续:
make sudo make install
---------
在构建和安装后在 PYTHON_PATH 添加扩展模块
export PYTHONPATH=~/projects/opencv/release/lib:$PYTHONPATH
在 Debian 上,我安装了 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 可执行文件构建的