之前在ubuntu下安装opencv都没什么问题,今天再次安装opencv3.1的时候感觉见了鬼了,安装完成后在python里根本无法import cv2,一直提示没有这个module。
于是乎用locate cv2.so一搜索,果然找不到这个文件,然后按照opencv官网的教程重新
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
发现得到的提示有些地方有点奇怪,因为我的python是用的anaconda中的,CMAKE的提示表明anaconda中的python解释器是找到了的,但是pythonlib却表示找不到,所以最后列出来的python2的信息只有interpreter这一项,并没有numpy相关的项,感觉错误就在这里了,但是这个pythonlib还真是不知道如何指定,网上一搜,有很多指定python3的pythonlib的path的,于是乎拿来把python3全部改为python2,得到如下的CMAKE命令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D PYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -D PYTHON_EXECUTABLE=$(which python) -D PYTHON_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..
再次得到的提示信息表明,python2下由原来的一条信息变成了三条,并且numpy已经可以定位到了,于是乎接下来
make -j32 #根据自己CPU情况来定这个数字
#此时已经可以看到如下的编译提示了^_^
Scanning dependencies of target opencv_python2
[100%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
sudo make install #官方提示要用sudo权限
最后cv2.so成功生成,python里import cv2成功!
再次