从源代码到conda环境安装Opencv

时间:2020-08-04 06:54:53

标签: python opencv

我想从源代码将opencv安装到我的conda环境中。由于我使用的是Jetson,因此opencv没有可用的pip或conda软件包。

我使用此命令从源代码安装

    -D BUILD_EXAMPLES=OFF
    -D BUILD_opencv_python2=ON
    -D BUILD_opencv_python3=ON
    -D CMAKE_BUILD_TYPE=RELEASE
    -D CMAKE_INSTALL_PREFIX=${PREFIX}
    -D CUDA_ARCH_BIN=5.3,6.2,7.2
    -D CUDA_ARCH_PTX=
    -D CUDA_FAST_MATH=ON
    -D CUDNN_VERSION='8.0'
    -D EIGEN_INCLUDE_PATH=/usr/include/eigen3 
    -D ENABLE_NEON=ON
    -D OPENCV_DNN_CUDA=ON
    -D OPENCV_ENABLE_NONFREE=ON
    -D OPENCV_EXTRA_MODULES_PATH=/tmp/build_opencv/opencv_contrib/modules
    -D OPENCV_GENERATE_PKGCONFIG=ON
    -D WITH_CUBLAS=ON
    -D WITH_CUDA=ON
    -D WITH_CUDNN=ON
    -D WITH_GSTREAMER=ON
    -D WITH_LIBV4L=ON
    -D WITH_OPENGL=ON"

如何将python依赖项安装到conda环境中,而不是将其安装到usr / loca / python中?

2 个答案:

答案 0 :(得分:2)

默认情况下,它将安装到您的系统Python路径,您可以通过输入以下内容来查看该路径:

which python
终端中的

。在cmake命令(上面发布的列表)中,您需要告诉它要将构建到哪个python可执行文件路径。目前,您的构建指向上面的默认Python位置,现在您要将其指向Conda Python路径。因此,例如,我在Anaconda中使用Python环境的基本路径是:

/home/robert/anaconda3/

您可以通过在终端中输入以下内容来获取Anaconda环境及其位置的列表:

conda env list

为此,您需要更新cmake命令以告诉它要构建的Python路径位于何处。我曾经使用过post来帮助我正确地指定Python可执行文件的构建路径,当为venv指定Python路径时,它对我有用。

例如,如果我想安装到Anaconda环境之一,则可以在cmake中执行以下操作:

-D PYTHON_DEFAULT_EXECUTABLE=$(/home/robert/anaconda3/envs/venv_openvcv/python3)

构建cmake时,滚动输出,并特别注意显示以下内容的行:

Python (for build): /home/robert/anaconda3/envs/venv_openvcv/python3

这是您确认是否要为正确的Python可执行文件(您指定的Anaconda可执行文件)构建opencv的方法。

编辑:此外,这里还有一个教程,详细介绍了为Anaconda环境-Installing OpenCV for Conda Virtual Environments

编译OpenCV的步骤。

答案 1 :(得分:0)

在 Ubuntu 20.04 上,这在一个新的干净构建目录中对我有用:

export CPLUS_INCLUDE_PATH=$CONDA_PREFIX/lib/python3.8
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
    -D PYTHON3_LIBRARY=$CONDA_PREFIX/lib/python3.8 \
    -D PYTHON3_INCLUDE_DIR=$CONDA_PREFIX/include/python3.8 \
    -D PYTHON3_EXECUTABLE=$CONDA_PREFIX/bin/python \
    -D PYTHON3_PACKAGES_PATH=$CONDA_PREFIX/lib/python3.8/site-packages \
    ..

我还为我的平台安装了 OpenCL 头文件,以在使其工作之前克服其他干预错误。如果您的系统上还没有许多额外的开发人员头文件,您可能需要先安装更多的头文件。这让我顺利通过了 cmake 阶段,然后通过 make 构建。

无需在 make install 之后对任何内容进行符号链接。

所以这也许是 Python 3.8 的一个很好的基础配方;似乎对官方 Ubuntu OpenCV build documentation 的唯一必要修改是指定指向 conda 环境目录的 cmake 参数,如上所示。

(使用的 OpenCV git hash 是 69357b1)

下次我可能会尝试在构建过程中使用 -j 来实现并发,因为 OpenCV 需要大约 30 分钟才能在相当现代的 CPU 系列上构建。