Centos7+python3.6+face-recognition

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

原文地址:https://www.cnblogs.com/hongyunshui666/p/9427848.html

时间: 2024-10-07 21:41:49

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

CentOS7+Python3.4+Django1.6.5+Apache2.4+mod_wsgi4.2.7

最近在centos7上面用Apache7成功部署用Python3.4与Django1.6.5写的应用,前前后后历程近一周,苦不堪言!最后得出一个结论,要用新的东西最最好直接看英文的官方文档,中文的博客绝大部分都是过时和无效的,容易误导自己. 在此简单记录下部署过程. 相关源码下载: mod_wsgi4.2.7:https://github.com/GrahamDumpleton/mod_wsgi,那个code.google上面的早就搬迁了,国内也很难成功打开链接. 源码编译安装顺序: Apach

Django 部署 CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)

本节将介绍如何部署Django,基于下面的架构: CentOS7+ Python3 + Django1.11 + uWSGI + Nginx. 首先,你得安装CentOS或Redhat等Linux系统,物理机和虚拟机都行,如果是阿里云ECS主机并且带有独立公网IP,那就更好.我选用的是CentOS7,敬请参考. 至于如何安装CentOS.Python3(含虚拟环境)和Django1.11,不是本节的内容,请自行解决.下面我假定你已将安装好了这三者. 将Django项目移植到Linux系统中,进入

docker+centos7 + python3.7 + scrapyd 安装过程

现在安装 docker https://www.cnblogs.com/angdh/p/12197143.html 非dockerfile 方法 下拉 centos7的镜像 docker pull centos:7 使用  docker images 查看 镜像id docker run -it --name=c7 镜像id /bin/bash 进入 容器 后 安装 python3.7 https://www.cnblogs.com/angdh/p/10564369.html 再 安装 scra

Centos7 Python3安装

下面的操作,按照步骤来就可以了,不要在中途cd?到别的文件目录下,要想查看效果可以用 lsj加上对应的目录,不需要切换进去.首先不管你当前在哪个目录下,输入以下命令.[[email protected] /]# cd /[[email protected] /]# 默认Centos7中是有python安装的,但是是2.7版本,我们需要安装py3.我们去看一下默认的py2.7在哪里.[[email protected] bin]# cd /usr/bin[[email protected] bin

centos7 python3 安装paramiko模块

1. CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,要用 Python3需要自己手动安装.注意不要删除python2. 1.1 下载python3源码包 wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 1.2 安装依赖 yum install openssl-devel libxslt-devel python3-dev python-dev -y 1.3 解压缩源码包然后编译

CentOS7+Python3.6利用web.py库进行微信公众平台服务器简易配置,token验证

1.安装配置Python CentOS7 自带 Python2.7, 我用的是Python3.6.5,需要CentOS7安装配置Python3并和Python2共存的,请看以下教程: CentOS7安装配置Python3.6.5 2.安装web.py pip install web.py 可以换国内源下载,速度比较快 3.安装libxml2, libxslt, lxml python yum install libxml2 yum install libxslt yum install lxml

centos7 python3 安装

mkdir /usr/python3.5tar -xf Python-3.5.1.tgz cd Python-3.5.1./configure --prefix=/usr/python3.5make & make installln -s /usr/python3.4/bin/python3 /usr/bin/python 因为yum使用python2,因此替换为python3后可能无法正常工作,因此修改yum配置文件(sudo vi /usr/bin/yum). 将第一行指定的python版本

centos7 python3.5中引入sqlite3

在centos系统中创建Django app,报错如下: django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named '_sqlite3' 解决方案: 安装sqlite-devel-3.3.6-2.x86_64.rpm: 在centos仓库里有该软件包,通过yum直接安装即可: [[emai

解决centos7 python3 上下左右变ABCD

首先:rpm -qa | grep readline //查看有没有安装readline-devel(出现标题的问题就是因为没有安装readline-devel包) 其次:使用yum search readline //查看readline-devel正确的包名(一般情况下,从网上看到方法,文件名可能不准备,直接复制可能找不到此包,导致安装不成功,所以先搜索,然后安装搜索到的完整包名进行安装)再使用yum search readline-devel 最终:在安装完readline-devel之后