ubuntu16.04下python2.7和python3.6各自调用不同的版本的opencv

python3.6的安装和opencv3.4.1安装,参看我以前写的ubuntu16.04源码安装opencv3.4.1和caffe

本想着python2.7调用opencv2.xxx版本的,但是由于我的电脑安装cuda是9.0, 而9.0不支持opencv2.xxx,所以只好用python2.7调用opencv3.4.0, 安装opencv3.4.0的过程和前面的安装基本一致,但是我不想opencv3.4.0安装到/usr/local目录下[python3.4.1在这个目录下],所以自己指定安装目录,例如我将opencv3.4.0安装在/home/xiongdeng/application/opencv340forpython2.7,记录命令如下:

  下载解压后,进入解压目录:

mkdir bulid

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/xiongdeng/application/opencv340forpython2.7 ..

[这一步可能会出错,百度一下即可,直接设置为OFF,具体忘了]

make -j8

sudo make install

到此为止opencv3.4.0安装完毕,但是python2.7还不能使用,opencv340forpython2.7的目录结构如下:

ubuntu16.04下python2.7和python3.6各自调用不同的版本的opencv_第1张图片

进入lib,发现有python2.7目录,里面有dist-packages/cv2.so

ubuntu16.04下python2.7和python3.6各自调用不同的版本的opencv_第2张图片


将cv2.so文件cp到/usr/local/lib/python2.7/dist-packages即可.

这里补充说明

查看一下python2.7的import路径可以使用命令

为什么cv2.so文件cp到/usr/local/lib/python2.7/dist-packages即可,我的理解是,cv2.so这个模块里面应该有指明了我们自定义安装opencv3.4.0的安装路径,这样就可以找到libopencv等其他文件.

当然也可以不用cp cv2.so文件,添加python2.7默认import路径即可,可参考这篇文章Python添加默认模块搜索路径


最后可以用这个代码测试

ubuntu16.04下python2.7和python3.6各自调用不同的版本的opencv_第3张图片

如果不放心,不知道能不能使用opencv,可以写一个py文件,代码如下,分别用python3.6和2.7可以运行,则说明成功了.

ubuntu16.04下python2.7和python3.6各自调用不同的版本的opencv_第4张图片




你可能感兴趣的:(python)