Mac opencv 3.0 + python 3.6 安装踩坑全记录,总有一个坑是你要踩的

这个教程是主线:

http://www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/ [你可以把我这篇博客当作是它的注解]

根据它,
1. Install Xcode,
2. Setup Homebrew
3. homebrew安装 Python 3
4. virtualenv创建一个虚拟环境,安装numpy
5. 用brew安装一些预备工具

——- Everything goes well so far ——-

6.编译OpenCV

1.首当其冲的, opencv和opencv_contrib的版本一定要一致
怪我自己傻逼,没仔细看教程,这个错误给我带来了无限的恶心

2.github上拿资源的速度巨慢,开了vpn也巨慢,
把vpn切换到欧洲线路(英国)之后,瞬间就下载好了

3.cmake配置文件有坑,用原教程中示例的模版不行,有人在评论区给出了一个新的能用的cmake配置模版

4.一定要在build目录下执行cmake操作

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D BUILD_opencv_python2=OFF \
    -D BUILD_opencv_python3=ON \
    -D PYTHON3_EXECUTABLE=$(which python3) \
    -D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
    -D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib \
    -D PYTHON3_LIBRARIES=/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/bin \
    -D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/Headers \
    -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
    -D INSTALL_C_EXAMPLES=OFF \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opcv/opencv_contrib/modules ..

6.编译OpenCV 第二部分

如果是在 macOS Sierra下,
cmake的时候,一定会出现'QTKit/QTKit.h' file not found

先去下载一个QTKit.framework
http://download.csdn.net/detail/huzhixin2099/9735855

开始转入支线剧情: https://sanwen8.cn/p/25eZ9td.html
跟着做就好了

重要提示(原文没有的):
重启mac的时候按住command+R, 进入另一个recovery界面,
在顶部的菜单栏,找到“终端”工具,就可以使用命令行了
然后按照教程 输入 csrutil disable
它会关闭一个什么什么protocol,
这样你就可以修改文件了

7.检查安装

当你走完 cmake
make
make install
看到进度条终于到100%,已经就编译成功了
但是,我的virtualenv里的python的sites-packages里面是没有cv2.so的,

找到opencv-3.0.0/build/lib/python3/cv2.cpython-36m-darwin.so这个文件,

把它复制到 ~/.virtualenv/你创建的虚拟环境/lib/ptython3.6/site-packages里面去,

然后重命名为cv2.so

然后在虚拟环境中 启动python,

>>> import cv2
>>> cv2.__version__

Finally …
这里写图片描述
流下了幸福的眼泪

猜你喜欢

转载自blog.csdn.net/sinat_24070543/article/details/73740469