系统环境:CentOS6.7
Anaconda版本:Anaconda3-5.1.0-Linux-x86_64
Python版本:Python-3.6.4
1. yum安装cmake、boost
yum install cmake boost
2. yum安装gcc gcc-c++
yum install gcc gcc-c++
先利用yum安装系统现有版本,再升级至4.8.1后卸载yum版本
3. 用conda安装dlib包
# conda install dlib
[root@hadoop7 pkgs]# condainstall dlib
Solving environment: done
==> WARNING: A newer versionof conda exists. <==
current version: 4.4.10
latest version: 4.5.1
Please update conda by running
$ conda update -n base conda
## Package Plan ##
environment location: /root/anaconda3
added / updated specs:
- dlib
The following packages will bedownloaded:
package | build
---------------------------|-----------------
ca-certificates-2018.1.18 | 0 140 KB conda-forge
numpy-1.14.2 |py36_blas_openblas_200 9.0 MB conda-forge
openssl-1.0.2o | 0 3.5 MB conda-forge
blas-1.1 | openblas 1 KB conda-forge
sqlite-3.20.1 | 0 1.3 MB conda-forge
certifi-2018.1.18 | py36_0 143 KB conda-forge
scipy-1.0.1 |py36_blas_openblas_200 39.8 MB conda-forge
scikit-learn-0.19.1 |py36_blas_openblas_201 12.8 MB conda-forge
libgfortran-3.0.0 | 1 281 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
openblas-0.2.20 | 7 17.0 MB conda-forge
dlib-19.10 |py36_blas_openblas_200 2.3 MB conda-forge
------------------------------------------------------------
Total: 86.3 MB
The following NEW packages willbe INSTALLED:
blas: 1.1-openblas conda-forge
dlib: 19.10-py36_blas_openblas_200conda-forge [blas_openblas]
libgfortran: 3.0.0-1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
openblas: 0.2.20-7 conda-forge
The following packages will beREMOVED:
anaconda: 5.1.0-py36_2 defaults
The following packages will beUPDATED:
ca-certificates: 2017.08.26-h1d4fec5_0 defaults --> 2018.1.18-0 conda-forge
certifi: 2018.1.18-py36_0 defaults --> 2018.1.18-py36_0 conda-forge
numpy: 1.14.0-py36h3dfced4_1 defaults -->1.14.2-py36_blas_openblas_200 conda-forge [blas_openblas]
openssl: 1.0.2n-hb7f436b_0 defaults --> 1.0.2o-0 conda-forge
scikit-learn: 0.19.1-py36h7aa7ec6_0 defaults --> 0.19.1-py36_blas_openblas_201 conda-forge [blas_openblas]
scipy: 1.0.0-py36hbf646e7_0 defaults --> 1.0.1-py36_blas_openblas_200 conda-forge [blas_openblas]
The following packages will beDOWNGRADED:
sqlite: 3.22.0-h1bed415_0 defaults --> 3.20.1-0 conda-forge
Proceed ([y]/n)? y
可以看到需要下载好多其它依赖包,输入y后会自动下载安装。如果下载失败可以手动下载安装文件安装
如:
cd /path/anaconda3/pkgs (包默认安装路径)
wgethttps://ffmpeg.org/releases/ffmpeg-3.4.2.tar.bz2
conda install ffmpeg-3.4.2.tar.bz2
4. face_recgnition的pip安装
# pip install face_recognition
可能发生的报错:“/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found”
face_recognition模块安装时,如果报错“Unsupportedcompiler-- pybind11 requires C++11 support!”,说明gcc版本不够高,可升级gcc,方法:
下载gcc最新版
wgethttp://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
然后解压到文件夹
tar -xvzf gcc-4.8.1.tar.gz
进入解压缩之后的目录
cd gcc-4.8.1
然后执行下面的运行
./contrib/download_prerequisites
再返回上一层,建立build_gcc_4.8.1目录,这个目录和gcc-4.8.1平行
cd ..
mkdir build_gcc_4.8.1
进入刚建立的目录,并执行编译过程
cd build_gcc_4.8.1
../gcc-4.8.1/configure--enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j23
make install
OK,在build_gcc_4.8.1中将gcc已经安装完成
确定新安装的GCC的路径,之前安装时记下最后mv时的路径即可,我是默认安在了/usr/local/bin
ls /usr/local/bin | grep gcc
执行:
/usr/sbin/update-alternatives --install/usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.1 40
gcc --version #查看版本
/usr/sbin/update-alternatives--install/usr/bin/g++ g++ /usr/local/bin/g++ 40
g++ --version #查看版本
高版本gcc安装完成后,再利用“yum remove gcc-c++”和“yum remove gcc”来卸载低版本的gcc编译器
再安装face_recgnition 会成功
# pip install face_recognition
5.测试导入包
[root@hadoop8 pkgs]# python
Python 3.6.4 |Anaconda, Inc.| (default, Jan16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help","copyright", "credits" or "license" for moreinformation.
>>> import dlib
>>> import face_recognition
>>>exit()
6. 其它安装问题
手动Dlib安装可能发生的意外情况:
报错1:build时,报错“The CXX compiler identification is unknown”。这种情况需安装gcc(作为CXXcompiler),需注意的问题参见上下文。
报错2:build时,报错“Could NOT find PythonLibs (missing: PYTHON_INCLUDE_DIRS)”,这种情况,cmake命令中需指定:
-DPYTHON_INCLUDE_DIR=/usr/python/include/python3.6m(具体机器路径不同,此路径应为Python.h文件存在的安装路径)
-DPYTHON_LIBRARY=/usr/python/lib/libpython3.so(具体机器路径不同,此路径应为libpython.**.so文件存在的安装路径)
完整命令如下:在dlib的源码中的build路径下输入cmake -DPYTHON_INCLUDE_DIR=/usr/python/include/python3.6m-DPYTHON_LIBRARY=/usr/python/lib/libpython3.so ../../tools/python/