zoukankan      html  css  js  c++  java
  • python学习--Linux下dlib安装(主要是cmake和boost的安装)

     昨天我们使用了dlib和opencv进行了人脸检测标注(http://www.cnblogs.com/take-fetter/p/8310298.html)

    但是运行环境是基于windows的而且可能因为我的电脑上的visual studio配置比较完备,安装运行没有出现任何问题.

    因为之后我打算把做的程序在树莓派上运行,所以先打算把昨天做的程序移到linux上试试,坑遇到了很多总结一下吧,opencv安装倒是没遇到什么坑

    环境:deep linux 15.5 , anaconda3 , pycharm 2017.3 

    更新:就在2018.1.22的dlib更新(ver 19.9)中取消了对boost.python的依赖,所以安装新版本应该不会遇到需要下载文件放入目录的问题了!!!

    dlib的安装首先需要安装cmake和boost

    • cmake的安装

    https://cmake.org/download/

    下载安装包 ,解压进入目录后依次运行

    ./bootstrap
    make
    make install
    • boost的安装

    http://www.boost.org/下载安装包

    解压进入目录后输入

    sudo apt install python3-dev build-essential
    ./bootstrap.sh --with-libraries=all --with-toolset=gcc --with-python=python3.6

    因为默认是Python2,如果安装完成之后运行之前程序出现以下问题就证明是错了
    但是这个with python参数会出现问题,编译后不会编译出所需的文件 https://www.jianshu.com/p/b9da6256aafe 这篇文章中--with-python是==python3.5 不知道能不能行得通,我这里3.6是没有成功的

    翻了一下包里的文档也没有看见具体的使用方法,我的解决方法在文章最后

    Traceback (most recent call last):
    File "/media/takefetter/demo/dlib/facial-landmarks/my_facial_landmarks.py", line 5, in <module>
    import dlib
    File "/home/takefetter/anaconda3/envs/tensorflow/lib/python3.6/site-packages/dlib/__init__.py", line 1, in <module>
    from .dlib import *
    ImportError: /usr/local/lib/libboost_python.so.1.66.0: undefined symbol: PyString_Type


    之后输入

    ./b2 toolset=gcc

    接下来就是静静的等待了,编译大约需要十分钟左右,当显示

    ...failed updating 66 targets...
    ...skipped 12 targets...
    ...updated 1251 targets...

    并再次回到命令行时可以运行

    ./b2 install --prefix=/usr

    将其安装到/usr目录下,其中使用到了--prefix=/usr用来指定boost的安装目录,不加此参数的话默认的头文件在/usr/local/include/boost目录下,库文件在/usr/local/lib/目录下。这里把安装目录指定为--prefix=/usr则boost会直接安装到系统头文件目录和库文件目录下,可以省略配置环境变量。

    顺便提下关于boost库的删除:删除/usr/include中的boost文件和/usr/lib中关于boost的所有文件就可以了

    最后使用

    ldconfig

    更新系统的动态链接库

    • dlib安装使用
    pip install dlib

    (anaconda 记得使用source activate 环境名  进入具体的python环境)

    接上文的解决方案:

    后面运行时会提示libboost_python.so.1.66.0: cannot open shared object file: No such file or directory

    我编译了好几次也没有能产生这个文件,只能是在网上down了一个:(

    https://files.cnblogs.com/files/take-fetter/libboost_python.so.1.66.0.zip 下载后放入usr/lib中

    索性运行正常,观海还是昨天的观海(误......

    也不知道以后会出什么问题,还是菜啊╮(╯▽╰)╭(以后工作了一定要换mac)

  • 相关阅读:
    [北京省选集训2019]生成树计数
    阿里云轻量级服务器的日常操作
    阿里云轻量级服务器上搭建jdk、Tomcat、mysql、zookeeper步骤!!!
    mysql如何记录数据的创建时间和更新时间??
    解决ssm中文乱码问题,上传文件中文乱码的问题
    zookeeper的安装配置问题;
    zookeeper解决启动提示:找不到或者无法加载主类org. apache. zookeeper. server. guorum. QuorumPeerMlain的问题
    《数据采集与网络爬虫》之数据解析
    《数据采集与网络爬虫》环境篇
    《数据采集与网络爬虫》之抓取网页
  • 原文地址:https://www.cnblogs.com/take-fetter/p/8318602.html
Copyright © 2011-2022 走看看