设为首页 收藏本站
查看: 1174|回复: 0

[经验分享] linux下安装python dlib依赖

[复制链接]

尚未签到

发表于 2017-11-18 18:34:17 | 显示全部楼层 |阅读模式
    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时,会给出明确的提示和操作步骤,如下:
     DSC0000.png
    步骤其实都给出来了,按上面的步骤安装即可,下面是具体过程:
    3.1.  下载boost库
    boost官网:http://www.boost.org/,点击右侧的最新版下载即可:
     DSC0001.png
    我这里下载的是: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
    上面的参数:--prefix是指定安装的位置,如果不加默认是安装在/usr/local和系统库混合,这样后面比较省事,但是如果手动指定目录这样便于对库进行管理,不过后期要配置一些东西,下面会说到;--with-libraries=python是必须要加的,否则不会编译python模块,或者使用--with-python以及对于python3的--with-python=python3参数都一样;上面安装过程需要挺长一段时间,安装之后进入安装目录,会看到只有两个目录,一个是include主要是存放头文件和源代码文件,另一个是lib,也就是我们编译好的python相关依赖,如下:
     DSC0002.png
    到这里boost.python依赖就算安装完成了
    4. 最后编译dlib python模块
    dlib库官网地址:http://dlib.net/ml.html 进入后点击左下侧按钮直接下载即可:
     DSC0003.png
    这里下载的是: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根目录,如下:
     DSC0004.png
    配置好之后,执行 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模块就正常了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408312-1-1.html 上篇帖子: #Linux Keepalived 双机热备 下篇帖子: linux从入门到精通(九)(压缩解压命令)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表