dlib是主要用于机器学习的库,封装了机器学习算法,可以非常方便的实现比如人脸识别,车辆识别,物体检测以其他很多功能,dlib默认使用C++进行开发,另外图像识别有一部分支持python接口开发,上手非常快,因为对于系统的安装过程,都来自官方文档的拼凑,网上资料很少,对新手会有一些坑,所以这里主要说一下python依赖接口的安装,服务器环境centos7.3,python版本2.7,下面是所有的依赖以及安装顺序:

  1. pip python模块,下载地址:https://pypi.python.org/pypi/pip

  2. cmake编译工具  之前文章有详细的安装过程

  3. Boost.Python  boost是一款非常流行的C++类库,封装了非常多好用的工具,Boost.Python其中一个组件,主要封装了python和C/C++之间通信的API,比默认的python api更完善,dlib基于这个依赖进行交互,所以这里需要编译boost.python依赖

  4. dlib python模块,前面环境都准备完毕,最后一步就是编译并安装dlib python扩展了

  dlib python模块执行安装时,过程是会基于cmake编译工具和Boost.Python工具对dlib源码进行编译,最后将二进制模块编译至python库目录下,然后python就可以调用了,那下面开始安装

  1. pip模块

  pip模块从上面网址下载下来,解压开,直接执行python setup.py install即可,和普通模块安装一样,没什么说的

  2. cmake编译工具

  参考之前的文章 http://www.cnblogs.com/freeweb/p/5788729.html 安装即可;如果没有cmake工具,在安装dlib时也会给出提示

  3. Boost.Python

  如果没有boost python依赖,那么下一步编译dlib时,会给出明确的提示和操作步骤,如下:

  

  步骤其实都给出来了,按上面的步骤安装即可,下面是具体过程:

  3.1.  下载boost库

  boost官网:http://www.boost.org/,点击右侧的最新版下载即可:

  

  我这里下载的是:boost_1_65_1.tar.bz2 大小80M左右

  3.2. 安装boost库

  下载之后开始安装,首先解压安装包:

tar -jxvf boost_1_65_1.tar.bz2
cd boost_1_65_1/

  然后按照上面图片的步骤和官网文档的步骤安装:

./bootstrap.sh --prefix=/monchickey/boost --with-libraries=python
./b2
./b2 install

  上面的参数解释:

1. --prefix是指定安装的位置,如果不加默认是安装在/usr/local和系统库混合,这样后面比较省事,但是手动指定目录便于对库进行管理,不过后期要配置一些东西,下面会说到.

2. python支持编译:--with-libraries=python 这里意思是仅安装python的库,其余的都不安装,对于dlib来说就是够用即可,但是如果需要编译全部库--with-libraries参数需要留空,也就是不加,文档中具体有写到,此时编译python要使用--with-python参数来专门指定,python2只使用参数:--with-python=python即可,其余的都默认,python3要使用--with-python=PYTHON3_HOME以及其他参数都指定详细,另外有篇文章是专门编译python3的,可以参考;

根据上面说的,如果需要编译boost全部依赖以及python 2.x的话,则使用下面的命令:

./bootstrap.sh --prefix=/monchickey/boost --with-python=python
./b2 && ./b2 install

上面编译和安装过程需要等待挺长时间,完了之后进入安装目录,会看到只有两个目录,一个是include主要是存放头文件和源代码文件,另一个是lib,也就是我们编译好的python相关依赖,如下(备注: 这里因为仅编译python库, 所以比较少):

  

  到这里boost.python依赖就算安装完成了

  4. 最后编译dlib python模块

  dlib库官网地址:http://dlib.net/ml.html 进入后点击左下侧按钮直接下载即可:

  

  这里下载的是:dlib-19.7.tar.bz2,首先在指定位置解压:

tar -jxvf dlib-19.7.tar.bz2
cd dlib-19.7/

  进入目录后会看到setup.py,如果上面boost.python安装到系统目录下的话,那么现在直接安装应该就可以了,如果是自定义目录,这时候安装仍然会报错提示找不到boost python库,其实是cmake找不到boost,这时候先不要急着配置系统库建软链,而是要配置环境变量,目的是让cmake找到boost即可,首先执行 vim /etc/profile 然后在最后一行加上: export BOOST_ROOT=/monchickey/boost 指定boost根目录,如下:

  

  配置好之后,执行 source /etc/profile 使环境变量生效,接下来就可以执行安装了:

python setup.py install --yes USE_AVX_INSTRUCTIONS

  这里后面加这个参数是为了支持CPU AVX指令集,这样可以提升程序运行的性能,目前一般CPU都支持;等一会就安装完成了,安装完成之后运行 python 进入交互式界面,输入 import dlib 如果正常就成功了,不过如果boost库安装的不是默认目录,仍然会出问题即libboost_python.so找不到的错误,原因是导入编译好的dlib模块时,同时dlib运行时又会加载boost.python库,这时候系统搜索不到所以会报错,这和刚才cmake报错是不同的,这个时候不要将刚才的boost库文件放到python库下面,只有编译成可以被python直接调用的库才放在python目录下面,而基于C的python库,运行时依赖的是系统库搜索路径,应该是/usr/lib,/usr/lib64这些,所以这时候解决方法有以下两种:

  1). 将/monchickey/boost/lib中的so模块建立软链接到/usr/lib64下面

  2). 利用配置文件/etc/ld.so.conf加载新的库搜索路径

  这里使用第二种方法,首先执行 vim /etc/ld.so.conf.d/boost.conf 新建配置文件,然后加入一行:/monchickey/boost/lib 保存并退出,

  然后执行命令: ldconfig 使配置生效,这样指定的链接库就被加到运行时搜索目录了

  现在再次导入dlib模块就正常了

转载于:https://www.cnblogs.com/freeweb/p/7699996.html

linux下安装python dlib依赖相关推荐

  1. 环境部署(九):linux下安装python+chrome+Xvfb

    在基于selenium进行的UI自动化测试中,开发调试环境一般都是windows操作系统.完成后需要部署到专门的测试环境. 如要要部署到linux环境的服务器(阿里云.腾讯云)执行,那么测试脚本也需要 ...

  2. Linux下安装python的swampy包

    linux下载swampy-2.1.7.tar.gz的安装包, tar -xzv -f *** -C *** 解压文件到指定文件夹,这里发生了一个插曲,下载的文件不全生成的是.tar.gz.part文 ...

  3. LInux 下安装 python notebook 及指向路径,运行计时,炫酷的深蓝午夜主题,本地登陆远程服务器

    1.  安装 pip工具 sudo apt-get install pyton-pip 2. 安装ipython及其依赖包 sudo apt-get install ipython ipython-n ...

  4. Linux下安装python集成开发环境——Ulipad

    一般安装Linux下系统的时候,都会默认安装python,mint17查看已经安装过的软件可以在终端输入: dpkg -l 软件名 不加软件名的话会把所有安装的软件列出来 使用python可以在终端输 ...

  5. Linux下安装Python,并在Linux下运行python代码文件

    CentOS配置源 1.查看本地yum源 ll /etc/yum.repos.d/ 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/yum.repos.d/ ...

  6. 彻底删除linux的python和pip,linux下安装python和pip

    注意:不要轻易去卸载原有的python环境,因为有些软件是依赖他的 一:安装前,先将依赖环境一并安装,避免后面重复编译 [root@redhat2 bin]# yum install gcc g++ ...

  7. Linux 下安装python软件包(pip、nose、virtualenv、distribute )

    在Python开发中为了对项目进行管理和调试,必须安装一些特定的软件包.据说业内这个叫做yak shaving-做一个很酷很绚丽的Python项目之前,必须做的一些枯燥无味的准备工作.本文介绍了set ...

  8. linux下安装python(安装python 3.6稳定版成功亲测)

    编译安装python3.6的步骤 1.下载python3源码包 wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz 2.下载py ...

  9. Linux下安装python 2.7.13

    1.安装依赖的库 yum -y install python-devel openssl openssl-devel gcc sqlite sqlite-devel mysql-devel libxm ...

最新文章

  1. JQuery EasyUI学习框架
  2. 银行考试计算机重点知识,银行考试计算机知识模拟试题及答案
  3. shell脚本详解(九)——一键部署DNS正向解析
  4. 2. linux的日志文件在哪个目录,位于/var/log目录下的20个Linux日志文件
  5. 前端学习(3106):react-hello-jsx小练习
  6. 开方计算与浮点数的问题
  7. eclipse创建spring boot项目,tomcat启动成功,但http://localhost:8080无法访问报错404解决方案...
  8. WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题
  9. 协同过滤推荐算法java_协同过滤推荐算法的原理及实现
  10. 一个程序员父亲的呼吁:不要教你的孩子从小学编程!
  11. 微信小程序: wx:key详解
  12. linux 不自动进入睡眠,linux 7 为何自动睡眠
  13. 21款奔驰S400L升级原厂小柏林之声音响
  14. 博世传感器调试笔记(一)----加速度传感器BMA253
  15. Linux磁盘管理工具RAID、Parted
  16. word文档怎么删除多余的空白页?
  17. SourceMap 浏览器控制台报错:DevTools failed to load SourceMap:Could not load content for ...
  18. 井字棋小游戏代码(Visual Studio)
  19. 74HC245的作用
  20. unity《愤怒的小鸟》初级案例笔记

热门文章

  1. 指针、数组、函数阶段小结
  2. 【Linux系统编程】线程同步与互斥:POSIX无名信号量
  3. 【物联网】OpenWrt编译和修改基础--预科
  4. java与spss交互,[转载]如何用SPSS做中介效应与调节效应(转)
  5. 深度linux引导安装,全程演示Linux Deepin 12.06安装过程
  6. opencv求两张图像光流_光流(optical flow)和openCV中实现
  7. 创新创业计划书_创践——大学生创新创业实务 ——如何撰写一份优秀的商业计划书...
  8. mysql char和varchar_MySQL char与varchar的差异
  9. linux下的二进制文件的编辑和查看
  10. deamon守护进程