解决anaconda中已经安装了opencv3,但无法import的问题

你可能遇见的问题:

  1. ImportError: No module named cv2
  2. ImportError: libz-a147dcb0.so.1.2.3: cannot open shared object file: No such file or directory

第一个问题:

你可能没有成功安装opencv环境,或者你需要重新安装opencv的环境进行尝试

你可以查看这一篇博客进行配置opencv卸载与安装

第二个问题:

你可能查看了某些博客,要求你将cv2.so移动到你的使用的python中( sudo cp /usr/local/lib/python2.7/dist-packages/cv2/cv2.so /home/username/anaconda3/lib/python3.6/dist-packages/),然后你再次import cv2就会发现会出现以上的报错

你可以通过which python命令查看你的python的来源。例如你通过which python得到的结果是/home/learner/anaconda3/bin/python

那么说明你需要的opencv文件应该放在anaconda3/lib/python3.6(你的对应的版本)/dist-packages/中

解决方法:

如果你确实已经按照以上的博客进行安装好opencv了,那么你可以继续进行,否则,请先按照以上博客进行opencv的安装。

根据提示,缺少的是libz-a147dcb0.so.1.2.3这个文件,那么我们进行查找通过sudo find / -name libz-a147dcb0.so.1.2.3

得到结果如下:

find: ‘/run/user/1000/gvfs’: Permission denied
/var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/PIL/.libs/libz-a147dcb0.so.1.2.3
/var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/h5py/.libs/libz-a147dcb0.so.1.2.3
/var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/h5py/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/cv2/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tf/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tf/lib/python3.6/site-packages/h5py/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tf/lib/python3.6/site-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3
/home/learner/.conda/envs/tf/lib/python3.6/site-packages/cv2/.libs/libz-a147dcb0.so.1.2.3
/usr/local/lib/python3.5/dist-packages/cv2/.libs/libz-a147dcb0.so.1.2.3
/usr/local/lib/python3.5/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3
/usr/local/lib/python2.7/dist-packages/h5py/.libs/libz-a147dcb0.so.1.2.3
/usr/local/lib/python2.7/dist-packages/cv2/.libs/libz-a147dcb0.so.1.2.3
/usr/local/lib/python2.7/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3

我们可以观察到有很多cv2的文件夹,而我们python所使用的anaconda3/lib/python3.6/site-packages中没有这个文件,那么将cv2.so文件复制过去

cp /usr/local/lib/python2.7/dist-packages/cv2.so /anaconda3/lib/python3.6/site-packages

在此处还不够,需要加上以下声明,可以添加到.bashrc中

export PYTHONPATH=/home/learner/anaconda3/lib/python3.6/site-packages/:$PYTHONPATH

验证结果

Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

这个方法是我误打误撞得到的,如果有更好的方法,希望大家可以给我留言,我会继续改进的

Ubuntu16.04 anaconda3 opencv已经安装,但是无法import的问题的更多相关文章

  1. Ubuntu16.04 LTS下apt安装WireShark

    Ubuntu16.04 LTS下apt安装WireShark 安装与配置 首先通过apt安装WireShark: $ sudo apt install wireshark 会同时安装许多的依赖包,其中 ...

  2. 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细

    公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...

  3. ubuntu16.04下sublime text3安装和配置

    ubuntu16.04下sublime text3安装和配置 2018年04月20日 10:31:08 zhengqijun_ 阅读数:1482 1.安装方法 1)使用ppa安装 sudo add-a ...

  4. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  5. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  6. Ubuntu16.04下,erlang安装和rabbitmq安装步骤

    文章来源: Ubuntu16.04下,erlang安装和rabbitmq安装步骤 准备工作,先下载erlang和rabbitmq的安装包,注意他们的版本,版本不对可能会导致rabbitmq无法启动,这 ...

  7. 服务器重装和配置:Ubuntu16.04 + Anaconda3 + GTX1080驱动 + CUDA8 + cuDNN + 常用工具安装

    前一篇[基于Ubuntu16.04的GeForce GTX 1080驱动安装,遇到的问题及对应的解决方法]是在机器原有系统上安装GPU驱动,后来决定备份数据后重装系统,让服务器环境更干净清爽. 1.安 ...

  8. Ubuntu16.04+Opencv3.3的安装教程

    需要准备的基本材料(请先看完整个安装过程再进行下面的操作): 一.到Opecv-Release的Github项目上下载最新的Opencv版本,注意---基于python2.7,可选用 OpenCV2. ...

  9. Anaconda ubuntu16.04 Cuda 8.0安装pytorch

    Pytorch 安装 Pytorch安装真的太让人省心了,在anaconda的环境下进行安装,只需要一个命令 具体命令请查看官网pytorch 找到适合你的版本进行安装 本机环境: anaconda3 ...

随机推荐

  1. python 时间与时间戳之间的转换

    https://blog.csdn.net/kl28978113/article/details/79271518 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 ...

  2. ifram+form方式实现文件、图片上传、预览

    1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  3. 前端开发 - JQuery - 上

    一.js的缺点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. Python作用域-->闭包函数-->装饰器

    1.作用域: 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我要理解两点:a.在全局不能访问到局部 ...

  5. NSUserDefaults保存对象数组报错

    在使用NSUserDefaults的时候插入数据有时候会报以下错误:Attempt to set a non-property-list objec 这种错误的原因是插入了不识别的数据类型,NSUse ...

  6. nginx 413 request entity too large解决办法

    nginx 出现:413 request entity too large,一般是在上传图片的时候,上传的图片大小超过了服务器设置的最大上传大小,需要修改nginx和PHP的设置: (1)打开 /us ...

  7. mac shell

    查看所有shell:cat /etc/shells 查看当前正在使用的shell:echo $SHELL 切换shell:chsh -s /bin/zsh

  8. PKU 3020 Antenna Placement(拆点+最小边覆盖)(最大匹配)

    题目大意:原题链接 一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市.问至少放置多少个基站才能使得所有的城市都覆盖无线? 提示:看清楚题目,' ...

  9. Java设计模式之模板方法模式(Template Method)

    一.含义 定义一个算法中的操作框架,而将一些步骤延迟到子类中.使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤,不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现. 二 ...

  10. JavaEE学习记录(一)--软件系统体系结构

    1 常见软件系统体系结构B/S.C/S 1.1 C/S l C/S结构即客户端/服务器(Client/Server),例如QQ: l 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户 ...