centos7.2+python2.7 opencv安装教程(校园网无法连接校外网情况)

无法连接校外网,意味着我们无法通过简单的指令直接从网上下载依赖包,这时候比较笨的方法是手动一个个下载依赖包,然后上传到我们的服务器。本文另有方法。

官方文档依赖条件(可以对比参考)

根据以下条件检查依赖包是否安装:(以下每一项都需要检查 Yum list xxxx 检查是否安装 )
autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
为了支持GUI特征 gtk2-devel
为了支持摄像头 libdc1394-devel libv4l-devel
为了支持视频媒体 ffmpeg-devel(一般的源中找不到该包,需要添加源) gstreamer-plugins-base-devel

图形文件解码库更新
libpng-devel libjpeg-turbo-devel
jasper-devel openexr-devel(未安装)
libtiff-devel libwebp-devel(未安装)

ipp_icv 这个东西是一个并行计算库,在编译的时候如果没有这货,就会编译不通过。(去网上下载相应的包,解决问题,下文提到)

tbb-devel 线程构建模块 Intel’s Threading Building Blocks (TBB),是Intel公司开发的并行编程开发的工具。

eigen3-devel 矩阵计算 Eigen是一个开源的C++矩阵计算工具

由于无法连接校外网,所以国内国外镜像均无法使用,这里提出的解决办法是,找一台可以联网的电脑,虚拟机上装centos系统,然后通过yum,直接处理包的依赖关系,可以通过yum下载所有依赖关系的离线包,然后上传到我们的集群中,直接批量处理。

虚拟机上添加源(针对ffmpeg)

1.进入到源的目录下

 /etc/yum.repos.d/

查看当前源

 yum repolist

2.备份当前源,并将新的源拷入

 mv CentOS-Base.repo CentOs-Base.repo.bk
 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

3.清除缓存重建源

 yum clean all
 yum makecache

4.安装EPEL_Release,因为安装需要使用其他的repo源,所以需要EPEL支持

yum install -y epel-release

如果出现缺少Code提示,可以:

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

5.安装Nux-Dextop源
导入一个Code

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

安装nux-dextop源

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

虚拟机上下载包及其依赖包

获取ffmpeg本省及其所有的依赖包

yum -y install ffmpeg --downloadonly --downloaddir=.

注意上面这行代码,是我们安装的关键,之前所有需要检查的依赖包,出现缺失的情况下,一个包可能又需要很多依赖包,这条指令可以直接将所有包下载下来,我们只需将下载好的包转移,批量安装,就可以完美解决我们没有网络的问题。同时可以下载多个包,只需要空格隔开。
安装所有依赖包

rpm -Uvh --force --nodeps *.rpm

解决完依赖关系,进入安装过程

https://github.com/opencv/opencv/releases/tag/3.2.0
下载源码包,执行以下命令

tar xvf opencv-3.2.0.tar
cd opencv-3.2.0
mkdir build
cd build

先Cmake一次(/opencv/opencv-3.2.0/填写你自己正确的路径,我自己在外面建了一个文件夹)

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opencv/opencv-3.2.0/ ..

此时会发现Cmake停在了下面这个位置,直接用Ctrl+C停掉当前的Cmake
– checking for module ‘libgphoto2’
– package ‘libgphoto2’ not found
– ICV: Downloading ippicv_linux_20151201.tgz…
进入下面这个文件夹
opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
会发现ippicv_linux_20151201.tgz文件,删除该文件

rm ippicv_linux_20151201.tgz

然后将上面ipp_icv下载中下载的文件放在这个文件夹下。
重新使用上面的命令Cmake一次。这一此Cmake不再卡在上面的阶段,但是报错。
这里写图片描述
我去网上找相关信息,找到一篇国外的博客,一样的问题,提示去下载Intel MKL(下载,序列号获取,参考我的另一篇博客:http://blog.csdn.net/a13326021319/article/details/73603370

下载 上传好之后,执行下面语句

tar zxvf l_mkl_2017.0.098.tgz
cd mkl_2017.0.098
sudo ./install.sh

安装过程中注意看提醒,输入前面得到的序列号,除此之外一路都是默认安装
如果直接执行安装,可能因为没有联网的关系,一直提示数字许可证过期。
这里写图片描述
根据提示,如下执行安装
这里写图片描述
再尝试cmake执行编译,这次,编译成功!!!
这里写图片描述

编译安装Opencv

make 编译,后面的参数 -j8指的是我的cpu有8线程,这个提议提高编译的效率。大家需要根据自己的CPU的线程数来确定这个值。当然,直接make也没问题,就是慢一点而已。

sudo make -j8

make过程依然会报错
这里写图片描述
去网上找相关错误,发现国外的论坛,针对性补上x264及其依赖包(方法同上,虚拟机下载,批量安装)
继续,依然报错
[ 40%] Built target opencv_cudafilters make: * [all] Error 2。(上面的方法没有解决问题)
仔细查看上面的报错信息,发现上面就有错误,试着解决
这里写图片描述
网上找到一篇博客
https://stackoverflow.com/questions/44038198/opencv-3-0-0-install-error-on-centos7
完全一样的错误。按照它里面的说法,需要将最新版本的jasper-devel-1.900.1-30.el7变回之前的版本jasper-devel-1.900.1-29.el7,虚拟机上centos下载到相应的包,上传,安装。
这里写图片描述
继续make
进行到这一步,卡了特别特别久
这里写图片描述
耐心等待就行(比较久)。
最终!!!!!终于编译成功!!!!!
这里写图片描述
最后一行命令:

sudo make install

这里写图片描述
完成,最后进行验证,Build文件夹下进lib文件夹,查看cv2.so是否存在,如图所示,存在
这里写图片描述
再进行下一步:

ln cv2.so /usr/lib64/python2.7/site-packages

在当前centos下是在这个路径下,不同的系统不同的安装路径需要调整红色部分位置
再在python内验证
这里写图片描述

安装完成!!!!!!

参考博客http://blog.csdn.net/daunxx/article/details/50506625

http://blog.csdn.net/chengfei112233/article/details/8244839

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值