安装face_recognition中遇到的坑

打算跑一下人脸识别代码,结果在配环境上遭遇了滑铁卢…

1 pip命令配置

  1. pip install --upgrade pip失败之后pip命令失效的问题

    • 需要使用python -m ensurepip才能让pip命令重新生效(感觉是—update失败但是删除了一些pip原本的文件,导致pip无法使用)
    • pip install --update --user pip能够成功更新pip
  2. pip命令在cmd中无效的问题

    • 显然是没有添加环境变量
    • 在添加Python的环境变量时,不仅要添加Python文件夹,还要添加Python/Scripts文件夹,pip.exe、pip3.exe以及其他一些可执行文件都在这个目录下

image-20210916101933581

2 face_recognition包的安装

2.1 先安装Cmake

pip install cmake 没有遇到什么问题

2.2 安装dlib的坑

  1. 找不到C_CXX_COMPILER的问题

    • 由于使用 pip install dlib 命令时,中间文件都在C盘一个奇怪的目录中(xxx/Temp/xxx),猜测这个目录是临时目录,可能安装失败后就自动删除了,所以一直找不到详细错误报告
    • 之后在尝试离线安装的时候,中间文件以及错误报告都在自己创建的文件夹中,于是查看详细错误报告,发现是VS的目录下一个CL.exe文件打开失败。退出360安全卫士后解决。(可恶的360!)
  2. subprocess.CalledProcessError: Command ‘[‘cmake’, ‘—build’, ‘.’, ‘—config’, ‘Release’, ‘—‘, ‘/m’]’ returned non-zero exit status 1.

    • 退出360重新安装时出现这个报错。(在疯的边缘了)
    • 遍寻伟大的互联网,找到如下解决方法:(5条消息) Windows 安装Dlib出现的问题_jiang7121250的博客-CSDN博客
    • 不再报上面的错了,但装完使用pipshow还是找不到(猜测是安装路径的问题,但是把文件拷贝过去还是找不到,直接在依赖包的路径下面安装也不行,所以又尝试了安装dlib.whl文件,见下)
  3. 尝试安装dlib的whl文件,报错:平台不支持

    • 了解到cp36代表支持Cpython3.6,于是conda一个新环境试试

      image-20210916013350324

    • 中间卡住了(一直在solving environment),感觉也是由于环境或者版本的问题

    • 再继续找方法,看到一个神奇的东西:如何在win下安装dlib的whl文件(Anaconda方式) - 绛绛 - 博客园 (cnblogs.com)

      image-20210916014337392

      image-20210916014359229

    • pip debug --verbose 可以显示当前python支持的包格式,正好对应下载的dlib.whl文件名中一些看不懂的参数说明,于是按照合适的版本重命名,再次尝试

    • 成功安装!!!激动的心颤抖的手,看看这张美丽的截图:

      image-20210916014459262

  1. 这还没完,这里是第二天装完OpenCv开始跑代码的虾滑…编译器报错dlib的DLL缺失

    • 猜测是由于修改文件名的骚操作导致安装出现问题,解决方法是重装dlib……好嘛从头开始,真的是吐了
    • 这又告诉我们,pip show XXX 是无法检测包有没有安装好的。还是得用 import看看能不能正常使用。
  2. 踏上重装之旅,pip install dlib --verbose 报错:error C2734: “GifAsciiTable8x8”: 如果不是外部的,则必须初始化常量对象 (编译源文件 E:\APKS\dlib-19.14.0\too

2.3 开始安装face_recognition

image-20210916014627953

非常顺利!!

3 Python和Anaconda环境配置

由于已经装了Python3.7 和Python3.8,又新下载了Anaconda,一时搞得有些混乱,于是决定把这俩东西整理一下。

参考:如何在已安装Python条件下,安装Anaconda,,并将原有Python添加到Anaconda中 - amazingym - 博客园 (cnblogs.com)