近期在研究人脸算法,需要用到dlib库,已经在window环境中正常跑通代码,准备把程序部署到服务器上,却卡在了安装dlib库上,耗费了大半天时间,特地记录一下纪念耗费掉的时间。
anaconda已经正常安装,按照常规操作进行pip安装:
pip install dlib
报错信息如下:
…
– Using CMake version: 3.20.5
– Compiling dlib version: 19.22.1
CMake Error at /tmp/pip-install-8tjh5qqt/dlib_cf7ea9b2b83d46bd801da216dd286c36/dlib/cmake_utils/set_compiler_specific_options.cmake:50 (message):
C++11 is required to use dlib, but the version of GCC you are using is too
old and doesn’t support C++11. You need GCC 4.9 or newer.
Call Stack (most recent call first):
/tmp/pip-install-8tjh5qqt/dlib_cf7ea9b2b83d46bd801da216dd286c36/dlib/cmake_utils/test_for_sse4/CMakeLists.txt:8 (include)
…
subprocess.CalledProcessError: Command ‘[‘cmake’, ‘/tmp/pip-install-8tjh5qqt/dlib_cf7ea9b2b83d46bd801da216dd286c36/tools/python’, ‘-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-8tjh5qqt/dlib_cf7ea9b2b83d46bd801da216dd286c36/build/lib.linux-x86_64-3.7’, ‘-DPYTHON_EXECUTABLE=/home/anaconda/envs/paddle_gpu2.2/bin/python’, ‘-DCMAKE_BUILD_TYPE=Release’]’ returned non-zero exit status 1.
1.按照提示可能是gcc版本太低,要求 4.9以上,但是查看安装的gcc版本
gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3) Copyright © 2018 Free
Software Foundation, Inc. This is free software; see the source for
copying conditions. There is NO warranty; not even for
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
版本号是8.3.1,不是这个原因。
2.怀疑是cmake 、boost 安装有问题,进行了重新安装,也为解决。
pip instal cmake boost
安装后,未解决。
3.有人说dlib不支持python3.7,但是之前windows已经安装成功了,抱着试试心态换成python3.6。
未解决。
4.尝试conda 常规方式安装。
conda install dlib
未解决。
最终解决,却是通过一条简单的命令成功安装。
conda install -c conda-forge dlib
成功。
经查阅通过conda-forge安装成功,应该是因为使用 conda-forge 通道而不是 Anaconda 维护的 defaults 通道 ,conda-forge 可能比defaults频道更新;conda-forge 就是通过feedstock和smithy,最后生成包的机构。
有时候版本不匹配兼容问题,就是没找到合适的包。