昨天我们使用了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 , in <module>
import dlib
File "/home/takefetter/anaconda3/envs/tensorflow/lib/python3.6/site-packages/dlib/__init__.py", line , in <module>
from .dlib import *
ImportError: /usr/local/lib/libboost_python.so.1.66.: undefined symbol: PyString_Type

之后输入

./b2 toolset=gcc

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

...failed updating  targets...
...skipped targets...
...updated 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)

python学习--Linux下dlib安装(主要是cmake和boost的安装)的更多相关文章

  1. [Python学习] Linux环境下的Python配置,必备库的安装配置

    1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...

  2. Python在Linux下编译安装

    [准备环境] Linux centos [前言] 1 linux下默认带Python,带的是2.7版本的 ,如果需要升级版本,需要把系统的自带的Python改名或者卸载,再次安装你所需要的Python ...

  3. 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记

    Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...

  4. Python在Linux下编译安装报错:Makefile:1141:install

    正常情况下执行:./configuremake && make install可以直接安装python,但是在在更新了乌版图后居然报错了!!!检查了一圈,发现乌版图安装了python3 ...

  5. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  6. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  7. 学习Linux下的文件目录管理

                    文件目录管理 一.认识Linux文件系统的架构 在Linux中是没有盘符这个概念的,即Linux中没有C盘和D盘的分盘.那么我们直接通过对目录的操作实现对磁盘的读写,因 ...

  8. Python之Linux下的virtualenv&&virtualenvwrapper

    virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境. #指定清华源下载pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn ...

  9. 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    原文地址:http://www.cnblogs.com/baiboy/p/orc8.html   阅读目录 目录 数据库安装 参考文献 相关文章 Oracle 11G RAC数据库安装(八) 概述:写 ...

随机推荐

  1. 2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】

    Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  2. GDKOI2016 游记

    2016.2.19~2.15强行广州koi被虐…… DAY 0 19日下午到达,第六次入住中大西苑宾馆,怂逼抽签抽中外交大使特殊职位,然后就一边看<死神>一边等石门两位室友啦.必须吐槽宾馆 ...

  3. [bzoj 2017] [Usaco2009 Nov]硬币游戏

    一个多月没更博客了..(期间明白了自己有多傻逼. 这种问题大概就倒着做... f[i][j]:表示考虑剩下的硬币i..n,且之前的人取了j个时,先手最多拿到的钱数.aft[i]:表示硬币i..n的总钱 ...

  4. Exponentiation(java 大实数)

    http://acm.hdu.edu.cn/showproblem.php?pid=1063 Exponentiation Time Limit: 2000/500 MS (Java/Others)  ...

  5. PHP安全之webshell和后门检测

    基于PHP的应用面临着各种各样的攻击: XSS:对PHP的Web应用而言,跨站脚本是一个易受攻击的点.攻击者可以利用它盗取用户信息.你可以配置Apache,或是写更安全的PHP代码(验证所有用户输入) ...

  6. ArcGIS中实现指定面积蜂窝(正六边形)方法

    本篇博文为博主(whgiser)原创,转载请注明. 空间聚集研究中,地理尺度大多数都是基于格网构建的,只需fishnet下就行了.也常有使用社区.交通小区(TZ)作为研究单元的.直到发现蜂窝网络做出的 ...

  7. java如何获取一个对象的大小

    When---什么时候需要知道对象的内存大小 在内存足够用的情况下我们是不需要考虑java中一个对象所占内存大小的.但当一个系统的内存有限,或者某块程序代码允许使用的内存大小有限制,又或者设计一个缓存 ...

  8. Servlet&&Jsp 概述

    主题 Servlet的作用 构建动态网页 Servlet代码初探 Servlet与其他技术的对比 Jsp的作用 Servlet的作用 Servlet是在web服务器或应用服务器上用来动态生成html的 ...

  9. 【视频编解码·学习笔记】3. H.264视频编解码工程JM的下载与编解码

    一.下载JM工程: JM是H.264标准制定团队所认可的官方参考软件.网址如下 http://iphome.hhi.de/suehring/tml/ 从页面中可找到相应的工程源码,本次选择JM 8.6 ...

  10. CCF系列之窗口(201403-2)

    试题编号: 201403-2时间限制: 1.0s 内存限制: 256.0MB 问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口 ...