Step1

安装Python3.6.x
https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-centos-7

sudo yum -y update

sudo yum -y install yum-utils

sudo yum -y groupinstall development

sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm

sudo yum -y install python36u

接下来就可以用python3.6 -V 看一下装成功了没。

Step2

安装OpenBLAS
这个 搜索一下,找个tar包,解压一下。make && make install 即可。很顺利

Step3

安装一些依赖包
sudo yum -y install boost-devel

Step4 给py3装上face-recognition

pip3.6 install face-recognition
推荐使用pip清华源 速度杠杠的
pip3.6 install face-recognition -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

华丽丽的坑,就来啦~~

坑1

dlib需要OpenBLAS依赖。如果你按照我的步骤来了,那么恭喜你,你不会碰到。(碰到了就来打我)

坑2

在安装face-recognition的时候,dlib安装耗时真的很长。当你等完这段时间以后(很开心有木有!)
在python shell里输入:

>>> import face-recognition

.....

.....

.....

.....

ImportError: ........./python3.6/site-packages/dlib/dlib.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

 

这个错误的描述,当时看到,心就凉了半截。多年爬坑经验告所我,谷歌也救不了我。

果然,我的判断没有错。花了半小时在谷歌各种搜索,没有得到任何答案。
只有两个感觉:
1、为啥大家都只有ubuntu的教程!!!!
2、py3怎么了!!!说好的淘汰py2呢!!!

不过,作为一个优雅的虔诚的爬坑者,我们遇到这种事一定要优雅~
反复安装了 18.100 和 19.x.x的多个dlib版本无果后,我不禁思考起了人生。

---------------一天后---------------

不过,天无绝人之路。
当你静下心来看这段话:

undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

好像并不是乱码诶

关键字:boost python detail init_module ModuleDef

运行了如下命令后
ldd /project/face/lib64/python3.6/site-packages/dlib/dlib.so | grep boost
我们可以认为,其实有可能是Step3 安装的lib_boost对应的是python2的版本(centos 默认安装python2 有很多系统级应用需要,比如yum)
说干就干,我们去找个lib_boost的源码包还不容易么。
解压后,按如下步骤安装(使用lib_boost版本1.5.3)

1、确认python 安装路径
whereis python

 

image.png

2、cd boost_1_53_0
./bootstrap.sh --with-python=/usr/bin/python --with-python-version=3.6 --with-python-root=/usr/lib/python3.6
sudo ./b2 --enable-unicode=ucs4 install
等待安装完成后,我满怀信心的:

import face-recognition

没有成功!!!相同的报错!!!
OH!!!NO!!!

我不信邪,我重新运行了一遍sudo ./b2 --enable-unicode=ucs4 install
我发现,控制台输出了一堆'fatal error: pyconfig.h: No such file or directory'
实际上,编译根本没有成功!
实际上只要添加:
export CPLUS_INCLUDE_PATH=/usr/include/python3.6m (include路径下的)
再次运行sudo ./b2 --enable-unicode=ucs4 install
就没有问题啦~~

作者:一二三亖19930408
链接:https://www.jianshu.com/p/1e6ac3d614e3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

 

本博文转自:https://www.jianshu.com/p/1e6ac3d614e3

Centos7+python3.6+face-recognition的更多相关文章

  1. centos7 python3.5 下安装paramiko

    centos7 python3.5 下安装paramiko 安装开发包 yum install openssl openssl-devel python-dev -y 安装pip前需要前置安装setu ...

  2. centos7+python3.6+nginx+uwsgi+django2的搭建笔记

    公司需上线一套python编写的代码,需要给搭建一套环境  ,本次采用centos7+python3.6+nginx+uwsgi2+django2+mysql5.7的方式来进行搭建 写在部署前 在线上 ...

  3. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

  4. CentOS7 Python3下安装 TensorToolbox 1.0.22时的一些错误及解决办法

    CentOS7 Python3下安装 TensorToolbox 1.0.22 (python3) [jiangshan@localhost ~]$ pip install TensorToolbox ...

  5. 基于centos7,python3.7新建第一个Django项目

    为了能更好的了解到整个网站的服务情况,需要了解前端,后端之间的联系,这时候就得需要用到Django框架,基于Django自身带的模板,它可以更好的接收用户发出请求,接下来讲解一下新建第一个Django ...

  6. Centos7 python3环境搭建 兼容python2.7

    Centos7 python3环境搭建 兼容python2.7 安装前提依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel ...

  7. Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)

    本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...

  8. Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解

    跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...

  9. 【Python】CentOs7 Python3安装Openssl以及解决ssl问题

    一.安装OpenssL 1.下载的压缩包放在根目录 wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz 2.在文件夹下解压缩,得到open ...

随机推荐

  1. Nginx Web服务应用

    Nginx 指令目录 Nginx 介绍 Nginx 编译安装 Nginx 功能模块 Nginx 目录结构 Nginx 配置文件 Nginx 虚拟主机配置 Nginx 状态信息功能配置 Nginx 错误 ...

  2. C#跑马灯,图片滚动,后台获取图片地址。动态绑定图片,imag显示文字

    下面附下载地址. http://download.csdn.net/download/njxiaogui/10002058 1.跑马灯效果,图片连续循环滚动,图片下面并可附文字描述,图片是从数据库中获 ...

  3. c groups

    https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt https://developer.ibm.com/hadoop/2017 ...

  4. 10个最好的免费PS图象处理软件方案

    说到照片和图像编辑/操纵,真的没有更好的应用,Adobe PS图象处理软件. 摄影师和创意工作室会同意这是总理的照片编辑应用期. 不幸的是,PS图象处理软件还配备了一个陡峭的学习曲线和价格标签,我们必 ...

  5. 各种容器与服务器的区别与联系:Servlet容器、WEB容器、Java EE容器、应用服务器、WEB服务器、Java EE服务器

    1.容器与服务器的联系 如上图,我们先来看下容器与服务器的联系:容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行. 2.各种容器的区别/联系 2-1.容 ...

  6. 【iCore4 双核心板_uC/OS-II】例程十:信号量集

    一.实验说明: 在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用的结果来决定任务的运行方式.UCOSII为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集. 二.实验 ...

  7. hdoj:2086

    A1 = ? Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. java通过jdbc访问mysql,update数据返回值的思考

    java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...

  9. 阿里云ECS服务器无法上传文件的解决方案

    1.安装软件启动FTP服务 yum install vsftpd # 安装service vsftpd start # 启动服务chkconfig vsftpd on # 开机启动 2.防火墙ipta ...

  10. 使用redis原生list结构作为消息队列取代celery框架。

    1.web后台对大批量的繁重的io任务需要解耦使用分布式异步技术,否则会使接口阻塞,并发延迟,一般就选celery好了.此篇的取代主要是针对取代celery的worker模式.没有涉及到周期和定时模式 ...