centos7.2+python2.7 opencv安装教程(校园网无法连接校外网情况)
2017-06-22 14:15
1046 查看
无法连接校外网,意味着我们无法通过简单的指令直接从网上下载依赖包,这时候比较笨的方法是手动一个个下载依赖包,然后上传到我们的服务器。本文另有方法。
官方文档依赖条件(可以对比参考)
根据以下条件检查依赖包是否安装:(以下每一项都需要检查 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下载所有依赖关系的离线包,然后上传到我们的集群中,直接批量处理。
查看当前源
2.备份当前源,并将新的源拷入
官方文档依赖条件(可以对比参考)
根据以下条件检查依赖包是否安装:(以下每一项都需要检查 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[/code]
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源
导入一个Codesudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro[/code]
安装nux-dextop源sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm[/code]虚拟机上下载包及其依赖包
获取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
相关文章推荐
- centos7.2+python2.7 gdal安装教程(校园网开启防火墙,无法使用yum,pip等工具)
- 像模像样之centos7.2安装Python2.7
- 解决慕课网linux教程xshell无法连接centos,VMware安装centos6.3,连接xshell
- CentOS 7.2 安装python3.6,兼容原有的2.7
- python2.7安装+mysql-window-64位安装+python连接操作mysql教程
- CentOS7.2 安装Pyhton3.6.1 ,与python2.7 共存
- centos5.6 python2.4.3升级2.7教程
- centos5.6 安装 python 2.7
- centos下装完python2.7无法使用yum的解决办法
- Centos 5.x 升级 python2.7,安装setuptools、mysqldb 完整记录
- centos安装 python 2.7
- 从0零开始学slatstack-(0)在centos 6.5 安装 python2.7 salt
- CentOS python2.7 自动安装脚本
- VitualBox安装CENTOS图文教程(4)——SSH、Xmanager远程连接设置
- CentOS 6.4 安装python2.7/mysqldb/ipython
- MySQL-python-1.2.4b4.win32-py2.7提示报错,无法安装的解决方案
- #1045无法登录phpmyadmin,连接不上mysql服务器,先把ubuntu安装lamp教程贴上吧
- centos python2.7安装
- centos 安装python2.7
- 关于CentOS下python无法安装mysql-python组件问题