Ubuntu16.04LTS,pip install opencv-python 失败解决方法(2019-8-9)最新教程

Ubuntu16.04pip安装失败/wheel包安装失败/解决方法!最新安装教程!

注:本文为博主原创文章,未经博主允许不得转载。 如需转载请注明出处,否则必定追究法律责任
https://blog.csdn.net/weixin_44232093/article/details/98937652

本人最近在开发项目,配置环境的时候因为安装opencv环境用掉了整整两个星期零4天的时间!走过来的一路真的是心力憔悴,特此记录此贴,让更多的人受益,话不多说上教程!

环境

  • Ubuntu16.04 LTS系统
  • opencv-3.4.7.zip
  • opencv_contrib-3.4.7.zip
  • 本人使用的是opencv3.4.7版本,因为我不需要那么高的版本,内存有限,我安装opencv4.1版本的时候编译到99%就卡死,如果你也遇到了这样的问题,那么可以适当的降低一下版本

1.下载安装opencv

  • 去官网下载opencv版本,本教程使用的是3.4.7,其他版本执行步骤一样
  • 下载opencv| https://opencv.org/releases/ |选择版本点击Sources下载即可
  • 下载opencv_contrib| https://github.com/opencv/opencv_contrib | ----点击realeases
  • 在这里插入图片描述
  • 选择opencv版本对应的contrib,这里保持一样的版本,不然执行的时候会报很多错
  • 把安装包放在任何你能找到的位置就行,放在/目录下也可以–解压
  • 本教程按照/目录执行 |cd /
  • tar 后缀的压缩包解压|tar -zxvf opencv-3.4.7.zip
  • zip后缀的压缩包解压|unzip opencv-3.4.7.zip
  • 把解压后的opencv-contrib文件夹放在opencv文件中|mv opencv_contrib-3.4.7 /opencv-3.4.7
  • 这样做因为有很多库都已经被放在contrib中了,避免安装的opencv库不全

2.下载opencv必须的包和依赖

  • 首先执行更新命令,以免apt-get找不到包 sudo apt-get update
#这一步执行的时间有点长,请耐心等待,只有全安装上cmake的时候才不会报错,不然功亏一篑
#安装cmake用来配置安装
sudo apt-get install cmake  

#安装GCC用于编译和一些其他依赖

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  
 
# 安装编译工具

sudo apt-get install build-essential  pkg-config 
 
# pkg-config软件包(非常有可能)已经安装在你的系统上,但为了以防万一,一定要将它包含在上面的apt-get命令中
# OpenCV是一个图像处理和计算机视觉库。 因此,OpenCV需要能够从磁盘加载各种图像文件格式,例如JPEG,PNG,TIFF等。为了从磁盘加载这些图像,OpenCV实际上调用了其他图像I / O库,它们实际上有助于加载和解码 处理。 我们在下面安装必要的:
 
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev 
 
#好的,现在我们有从磁盘加载图像 - 但视频呢? 使用以下命令来安装用于处理视频流和从相机访问帧的软件包:
 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
 
sudo apt-get install libxvidcore-dev libx264-dev 
 
#OpenCV通过一套非常有限的GUI工具提供开箱即用的功能。 这些GUI工具允许我们在屏幕上显示图像(cv2.imshow),等待/记录按键(cv2.waitKey),跟踪鼠标事件(cv2.setMouseCallback)以及创建简单的GUI元素,如滑块和轨迹条。 同样,你不应该期望用OpenCV构建完整的GUI应用程序 - 这些只是简单的工具,可以让你调试代码并构建非常简单的应用程序。
 
#在内部,处理OpenCV GUI操作的模块的名称是highgui。 highgui模块依赖于GTK库,您应该使用以下命令安装它:

sudo apt-get install libgtk-3-dev 
 
# 接下来,我们安装用于优化OpenCV内部各种功能的库,例如矩阵操作:

sudo apt-get install libatlas-base-dev gfortran 
 
# 我们将通过为Python 2.7和Python 3.5安装Python开发头文件和库(这两种方式)来完成第1步:

sudo apt-get install python2.7-dev python3.5-dev 
 
#这个安装包非常重要,Python-dev和Numpy用于构建Python绑定,如果没有安装的话,那么python
#由于ubuntu是通过指令区分python版本的,那么把两个版本的依赖都安装上

sudo apt-get install  python-dev python-numpy  python3-dev python3-numpy
 
# 安装依赖GTK支持GUI功能,相机支持(v4l),媒体支持(ffmpeg,gstreamer)等
sudo apt-get install gtk+-3.0

3.创建编译目录

  • 进入opencv目录|cd opencv-3.4.7
  • 创建编译文件夹,官网给出名字叫build|mkdir build
  • 进入build文件夹|cd build

4.编译和安装

  • 执行cmake命令|cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. | 注意后面的两个点不能少,这句话的意思是把opencv配置到/usr/local下面
  • cmake执行中会下载一个文件,所以会比较慢,有时可能会下载超时,如果超时下载参考这篇文章
  • https://blog.csdn.net/ordream/article/details/84312472 |手动下载,反正我没超时过
  • 显示这些配置信息就表示你已经构建了python绑定
--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages
--
--   Python 3:
--     Interpreter:                 /usr/bin/python3.4 (ver 3.4.3)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python3.4/dist-packages
---------------------------------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fc/opencv/opencv-

执行make命令编译

#执行编译命令,这里j后面的参数是用几核去编译的意思,根据自己的系统配置修改
#基本上内存够的话 直接make -j8不会卡死机
#这一步执行时间也比较长,我大约用了四十五分钟
#如果这一步死机,趁死机之前按CTRL+Z退出,然后重启 在进入到build目录重新执行命令
#如果这一步卡到百分之99不动了,那就用j8命令八核强制编译一下,如果能冲到百分之百然后卡住了,那也没关系,
执行下一步命令就行

sudo make -j8

  • 如果上一步成功执行,那么恭喜你已经成功百分之99了

执行安装命令

#这一步基本不会有太大的波澜,如果之前都弄得好好的,那么就没什么问题
sudo make install
  • 如果这一步成功了,你只想在python中import cv2 那么就到这一步就可以了

检查opencv是否安装成功

  • 如果出现以下信息,则表示安装成功,那么恭喜你啊
import cv2 as cv
print(cv.__version__)
3.4.7

问题一找不到cv2模板No module named cv2

  • 原因在于python版本找不到cv2.so文件,
sudo cp /opencv-3.4.7/build/lib/cv2.so  /usr/local/lib/python3.5/dist-packages/
  • cv2文件一般都在| /usr/local/lib/python3.5/dist-packages/文件中,如果你安装成功的话

5.说明

  • opencv如果安装失败想重新安装,千万不要重新装系统,那么下载的依赖包就白下载了
  • 只需要把当前的opencv文件 |rm -r 删除就行,这样你可以不停的下载各个版本的opencv和opencv-contrib一个一个试
  • 安装opencv的关键就是用GCC编译,用 build-essential构建,用python-dev python-numpy绑定python,用gtk支持媒体相机功能 把这几个关键的依赖包必须安装上

好了此次教程我遇见的问题和我总结的问题都在这里了,祝大家安装成功!

参考链接:https://blog.csdn.net/ordream/article/details/84312472

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三胖哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值