Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Opencv从源代码安装到conda环境_Python_Opencv_Conda - Fatal编程技术网

Python 将Opencv从源代码安装到conda环境

Python 将Opencv从源代码安装到conda环境,python,opencv,conda,Python,Opencv,Conda,我想从源代码将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_AR

我想从源代码将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/local/python

默认情况下,它将安装到您的系统python路径中,您可以通过输入:

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

/home/robert/anaconda3/
通过在终端中输入以下内容,您可以获得Anaconda环境及其位置的列表:

conda env list
要做到这一点,您需要更新cmake命令,告诉它要构建的Python路径所在的位置。我以前使用过它来帮助我正确指定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
这是您确认是否要将opencv构建到正确的Python可执行文件(您指定的Anaconda)的方法


编辑:此外,这里还有一个教程,详细介绍了在Ubuntu 20.04上为Anaconda环境编译OpenCV的步骤,这对我来说是在一个新的干净构建目录中工作的:

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
进行构建

进行安装之后,不需要对任何内容进行符号链接

因此,这可能是Python3.8的一个很好的基础配方;似乎对官方的唯一必要修改是指定指向conda环境目录的
cmake
参数,如上所述

(使用的OpenCV git哈希为69357b1)


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

基本上我从这里收集到的信息是,需要告诉
cmake
命令有关conda环境结构的所有信息(lib、include、bin等目录的路径)为了让它发挥作用,而不仅仅是遵循只提供conda环境根的天真想法。当我认为CMAD不应该知道任何关于工具CONDA的东西时,这是有意义的。杰特森是什么架构,它有Conda但不能使用<代码> CONDA FARG::OpenCV < /代码>?至少,特别是
meta.yaml
build.sh
对于如何使用Conda编译和编译成Conda应该是非常有用的参考点