在OSX上使用python 3.5.0使用pyenv编译OpenCV3

Wes*_*ley 2 python-3.x opencv3.0

花了我一段时间来解决这个问题,所以我想我会写下来。

Wes*_*ley 5

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

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.0
Run Code Online (Sandbox Code Playgroud)

新建一个名为opencv的virtualenv

pyenv virtualenv 3.5.0 opencv
Run Code Online (Sandbox Code Playgroud)

激活virtualenv并安装numpy

pyenv activate opencv
pyenv rehash
pip install numpy
Run Code Online (Sandbox Code Playgroud)

克隆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
Run Code Online (Sandbox Code Playgroud)

运行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
Run Code Online (Sandbox Code Playgroud)

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

PYTHON3_EXECUTABLE="$PREFIX"/bin/python3
PYTHON3_LIBRARY="$PREFIX_MAIN"/lib/libpython3.5m.a
Run Code Online (Sandbox Code Playgroud)

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