使用pip install dlib经常会出现安装失败的问题,可以使用源码编译的方式,成功率更高
1.安装编译依赖(以ubantu系统为例)
sudo apt-get update
sudo apt-get install -y build-essential cmake libopenblas-dev
2.从git上下载源码
git clone --depth 1 https://github.com/davisking/dlib.git
#进入该目录,准备编译
cd dlib
3.编译方式一
直接使用cmake编译,编译完成后安装
mkdir build && cd build
cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
cmake --build . --config Release --parallel 4
cd ..
python setup.py install
4.编译方式二
使用方式一编译后dlib包路径可能带有egg后缀
#使用pip查看
pip show dlib
#可能输出如下结果
Location: python/site-packages/dlib-20.0.99-py3.11-linux-x86_64.egg
这是因为使用的setuptools工具版本过旧,默认打包格式为.egg
此种情况也可能出现在使用easy_install工具安装包,或conda环境下使用pip安装的某些包没有提供wheel格式的预编译二进制包
解决方法:
可将编译后的源码手动转为wheel格式,实现纯净安装
#安装wheel包
pip install wheel
#在 dlib 源码目录下运行
python setup.py bdist_wheel
#这将在dlib目录下生成/dist目录,其中含有.whl文件,例如
dist/dlib-20.0.99-cp311-cp311-linux_x86_64.whl
#安装.whl文件
pip install dist/dlib-*.whl
#验证是否成功
pip show dlib
#如果安装成功,你应该看到形如:Location: python/site-packages
#而不是:python/site-packages/dlib-*.egg
解决完毕