Ubuntu下安装anaconda和opencv后,import cv2提示no module

条件:已经成功安装好opencv和anaconda,但是使用opencv时候,使用import cv2时提示no module name ‘cv2’ 

安装copencv通过源码编译参考:https://blog.csdn.net/qq_34650787/article/details/80246521

主要参考这个篇文章进行https://blog.csdn.net/zyazky/article/details/82621547

原因:

ubuntu16.04系统自带python2和python3。直接命令行中,python,python3就可以使用并查看相应版本。

但我们一般也会装anaconda集成包,因为他包含了python以及相关安装包。使用起来比较方便。

但是从源码安装编译opencv时却因为anaconda这个包的存在埋了不少坑。

本人之前先在系统自带python的基础上又安装了anaconda3,并将anaconda3中的python3.6加入到系统路径中,这样系统就会一直调用anaconda3中python3.6.

然后再从源码安装编译opencv3.4.0,这时候会出现一个问题。编译时要生成python可以调用的cv2.so,需要调用python编译器,但此时opencv源码中的cmakelist懵了,不知道用系统自带还是anaconda中的python,干脆就放弃了编译生成这个python接口可调用的cv2.so文件。所以此时无论在系统python环境下还是anaconda python环境下都不能import cv2.
 

我本人亲自试过可用的方法:

使用系统自带的python2和python3编译分别会生成cv2.so和cv2.cpython-35m-x86_64-linux-gnu.so这就是我们分别在anaconda2和anaconda3中import的cv2模块。

因为我的是anaconda3,所以首先进入到~/opencv-3.4.0/my_build_dir/lib/python3目录下将其中的cv2.cpython-35m-x86_64-linux-gnu.so复制到anaconda下。(如果是anaconda2就直接将cv2.so复制进去就可以了)

sudo cp cv2.cpython-35m-x86_64-linux-gnu.so /home/zya/anaconda3/lib/python3.6/site-packages/

然后改名cv2.so就可以使用
 

你可能感兴趣的:(Ubuntu下安装anaconda和opencv后,import cv2提示no module)