昨天咱們使用了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)