昨天咱们使用了dlib和opencv进行了人脸检测标注(http://www.cnblogs.com/take-fetter/p/8310298.html)html
可是运行环境是基于windows的并且可能由于个人电脑上的visual studio配置比较完备,安装运行没有出现任何问题.python
由于以后我打算把作的程序在树莓派上运行,因此先打算把昨天作的程序移到linux上试试,坑遇到了不少总结一下吧,opencv安装却是没遇到什么坑linux
环境:deep linux 15.5 , anaconda3 , pycharm 2017.3 bootstrap
更新:就在2018.1.22的dlib更新(ver 19.9)中取消了对boost.python的依赖,因此安装新版本应该不会遇到须要下载文件放入目录的问题了!!!windows
dlib的安装首先须要安装cmake和boostui
https://cmake.org/download/spa
下载安装包 ,解压进入目录后依次运行命令行
./bootstrap
make
make install
http://www.boost.org/下载安装包code
解压进入目录后输入htm
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
更新系统的动态连接库
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)