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. 【转载】Linux 命令行快捷键 - 移动光标

    Linux 命令行快捷键 - 移动光标 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 常用 ctrl+左右键:在单词 ...

  2. sed用法去除行首和行末的中括号

    sed去掉行首和行末的中括号: sed -i 's:^\[::; s:\]$::;' newtrace_nlp.log.2018-08-02.bak 其余可依次类推.

  3. 【资料下载区】【iCore4相关代码、资料下载地址】更新日期2018/02/24

    [iCore4相关文档][更新中...] iCore4原理图(PDF)下载iCore4引脚注释(PDF)下载iCore4机械尺寸(PDF)下载 [iCore4相关例程代码][ARM] DEMO测试程序 ...

  4. C++ 函数模板的返回类型如何确定?

    函数模板 #include <iostream> // 多个参数的函数木板 template<typename T1, typename T2> T2 max(T1 a, T2 ...

  5. 利用Navicate把SQLServer转MYSQL的方法(连数据)

    中文乱码问题:https://pqcc.iteye.com/blog/661640 本次转换需要依赖使用工具Navicat Premium. 首先,将数据库移至本地SQLServer,我试过直接在局域 ...

  6. HDFS基础

    1. HDFS Shell基础 [root@master hadoop]# hadoop fsUsage: hadoop fs [generic options] [-appendToFile < ...

  7. ABBYY PDF Transformer+ 给你好看

    ABBYY PDF Transformer+是一个新的.全面的巧妙解决PDF文档的工具,它将泰比的光学字符识别(OCR)技术和Adobe®PDF技术完美结合,以确保实现便捷地处理任何类型的PDF文件, ...

  8. Timeline Storyteller 现已加入自定义图表库

    前言 下载地址: https://store.office.com/en-us/app.aspx?assetid=WA104381136&sourcecorrid=328f5e2b-e973- ...

  9. UnicodeEncodeError: 'latin-1' codec can't encode characters in position 41-50: ordinal not in range(256)

    在处理标题或网址为中文的文件或网页的时候,报UnicodeEncodeError: 'latin-1' codec can't encode characters in position 41-50: ...

  10. PHP删除数组中空值的方法