【问题标题】:Compiling OpenCV3 with pyenv using python 3.5.0 on OSX在 OSX 上使用 python 3.5.0 用 pyenv 编译 OpenCV3
【发布时间】:2018-06-12 19:17:49
【问题描述】:

我花了一段时间才弄明白,所以我想我会把它写下来。

【问题讨论】:

    标签: python-3.x opencv3.0


    【解决方案1】:

    通过pyenv安装支持共享库的python:

    env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.0
    

    创建一个名为 opencv 的新虚拟环境

    pyenv virtualenv 3.5.0 opencv
    

    激活 virtualenv 并安装 numpy

    pyenv activate opencv
    pyenv rehash
    pip install numpy
    

    克隆opencv和opencv_contrib放到~/

    cd ~
    git clone https://github.com/Itseez/opencv.git
    cd opencv
    git checkout 3.1.0
    
    cd ~
    git clone https://github.com/Itseez/opencv_contrib
    cd opencv_contrib
    git checkout 3.1.0
    
    cd ~/opencv
    mkdir build
    cd build
    

    运行 CMake 并安装

    PREFIX_MAIN=`pyenv virtualenv-prefix`
    PREFIX=`pyenv prefix`
    cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX="$PREFIX" \
        -D PYTHON3_EXECUTABLE="$PREFIX"/bin/python3.5 \
        -D PYTHON3_PACKAGES_PATH="$PREFIX"/lib/python3.5/site-packages \
        -D PYTHON3_LIBRARY="$PREFIX_MAIN"/lib/libpython3.5m.dylib \
        -D PYTHON3_INCLUDE_DIR="$PREFIX_MAIN"/include/python3.5m \
        -D PYTHON3_NUMPY_INCLUDE_DIRS="$PREFIX"/lib/python3.5/site-packages/numpy/core/include \
        -D INSTALL_C_EXAMPLES=OFF \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D BUILD_EXAMPLES=ON \
        -D BUILD_opencv_python3=ON \
        -D INSTALL_NAME_DIR=${CMAKE_INSTALL_PREFIX}/lib \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
    
    make -j8
    
    make install
    

    注意:如果您使用的是 python 3.5.2,则需要更改

    PYTHON3_EXECUTABLE="$PREFIX"/bin/python3
    PYTHON3_LIBRARY="$PREFIX_MAIN"/lib/libpython3.5m.a
    

    来源:基本上将这些指南混合在一起:

    【讨论】:

    • 我需要添加 -D BUILD_SHARED_LIBS=OFF 因为它制作的 cv2.so 二进制文件找不到我的 dylibs(?),而且我还关注了你的第一个站点上的更新,说 OpenCV 3.1.0 是坏了,除非你切换到-D INSTALL_C_EXAMPLES=OFF(没有费心尝试打开它)
    • 运行 make - j8: fatal error: 'opencv2/core/hal/intrin.hpp' file not found 时出现此错误。知道如何解决这个问题吗?
    • @NickT 谢谢,我已经更新了 3.1.0 的答案。不过,不确定与 BUILD_SHARED_LIBS 有什么关系。
    • @sooon 尝试检查 3.1.0 的 repos 并再次构建。
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多