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 , 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的安装)的更多相关文章
- [Python学习] Linux环境下的Python配置,必备库的安装配置
1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...
- Python在Linux下编译安装
[准备环境] Linux centos [前言] 1 linux下默认带Python,带的是2.7版本的 ,如果需要升级版本,需要把系统的自带的Python改名或者卸载,再次安装你所需要的Python ...
- 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记
Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...
- Python在Linux下编译安装报错:Makefile:1141:install
正常情况下执行:./configuremake && make install可以直接安装python,但是在在更新了乌版图后居然报错了!!!检查了一圈,发现乌版图安装了python3 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 学习Linux下的文件目录管理
文件目录管理 一.认识Linux文件系统的架构 在Linux中是没有盘符这个概念的,即Linux中没有C盘和D盘的分盘.那么我们直接通过对目录的操作实现对磁盘的读写,因 ...
- Python之Linux下的virtualenv&&virtualenvwrapper
virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境. #指定清华源下载pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn ...
- 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
原文地址:http://www.cnblogs.com/baiboy/p/orc8.html 阅读目录 目录 数据库安装 参考文献 相关文章 Oracle 11G RAC数据库安装(八) 概述:写 ...
随机推荐
- Codeforces 791B Bear and Friendship Condition(DFS,有向图)
B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes in ...
- PHPStorm+PHPStudy配置XDebug
img { max-width: 100% } 上一节里面从PHPStudy+PHPStorm的配置,到最后发布,PHPStorm只是承担了编辑器和发布站点的任务,但是还没有办法像Visual Stu ...
- 对SVD奇异值分解的理解
首先推荐一篇博客,奇异值分解(SVD)原理详解及推导 - CSDN博客,讲解的很清楚.这里我谈谈自己的理解,方便以后回顾. 如果把向量理解为空间中的一个元素,那么矩阵可以理解为两个空间上的映射 ...
- MLlib--决策树
转载请标明出处http://www.cnblogs.com/haozhengfei/p/d65ab6ccff684db729f44a947ac9e7da.html 决策树 1.什么是决策树 决策 ...
- Linux的软件安装(JDK安装,Mysql安装,Tomcat安装)
1.JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java ps:博主这 ...
- Thrift之TProtocol系列TJSONProtocol解析
在了解JSON协议之前,朋友们可以先去了解一下JSON的基础知识,和ASCII基本分布,关于JSON一些常识请见这里; JSON (JavaScript Object Notation)是一种数据交换 ...
- Java通配符解惑
T 有类型 ? 未知类型 一.通配符的上界 既然知道List<Cat>并不是List<Anilmal>的子类型,那就需要去寻找替他解决的办法, 是AnimalTrianer ...
- linux libpcap的性能问题,请大家注意绕行。
内核代码中,ip_rcv是ip层收包的主入口函数,该函数由软中断调用.存放数据包的sk_buff结构包含有目的地ip和端口信息,此时ip层进行检查,如果目的地ip不是本机,且没有开启转发的话,则将包丢 ...
- 记录linux tty的一次软锁排查
本过程参照了某大侠的https://github.com/w-simon/debug/blob/master/tty_lock_cause_sytemd_hung , 当第二次出现的时候,还是排查了一 ...
- 使用Python查询JMX
一.介绍 我们知道 java 项目中的 JMX 接口信息是十分有用的,我们可以提取这些信息来分析或告警.但是 JMX 的 API 只在 java 中实现,因此,找到一个 Python 代码调用 Jav ...