win7環境下安裝dlib人臉檢測包

背景

項目中需要用到dlib包進行人臉檢測與關鍵點提取,之前都是在mac或者linux系統下進行的,這次需要在Windows系統下進行。在mac或者linux系統下,安裝非常簡單,使用以下命令即可

pip install dlib

但是在Windows系統下使用這個命令會報錯:

Collecting dlib
  Downloading https://files.pythonhosted.org/packages/05/57/e8a8caa3c89a27f80bc78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz (3.4MB)
     |████████████████████████████████| 3.4MB 14kB/s
Building wheels for collected packages: dlib
  Building wheel for dlib (setup.py) ... error
  ERROR: Complete output from command 'f:\python36\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\fu\\AppData\\Local\\Temp\\pip-install-t50q34ym\\dlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\fu\AppData\Local\Temp\pip-wheel-g2i4oztb' --python-tag cp36:
  ERROR: running bdist_wheel
  running build
  running build_py
  package init file 'dlib\__init__.py' not found (or not a regular file)
  running build_ext
  Traceback (most recent call last):
    File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 120, in get_cmake_version
      out = subprocess.check_output(['cmake', '--version'])
    File "f:\python36\lib\subprocess.py", line 356, in check_output
      **kwargs).stdout
    File "f:\python36\lib\subprocess.py", line 423, in run
      with Popen(*popenargs, **kwargs) as process:
    File "f:\python36\lib\subprocess.py", line 729, in __init__
      restore_signals, start_new_session)
    File "f:\python36\lib\subprocess.py", line 1017, in _execute_child
      startupinfo)
  FileNotFoundError: [WinError 2] 系統找不到指定的文件。

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 261, in <module>
      'Topic :: Software Development',
    File "f:\python36\lib\site-packages\setuptools\__init__.py", line 143, in setup
      return distutils.core.setup(**attrs)
    File "f:\python36\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "f:\python36\lib\distutils\dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "f:\python36\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "f:\python36\lib\site-packages\wheel\bdist_wheel.py", line 192, in run
      self.run_command('build')
    File "f:\python36\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "f:\python36\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "f:\python36\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "f:\python36\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "f:\python36\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 129, in run
      cmake_version = self.get_cmake_version()
    File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 125, in get_cmake_version
      "\n*******************************************************************\n")
  RuntimeError:
  *******************************************************************
   CMake must be installed to build the following extensions: dlib
  *******************************************************************

  ----------------------------------------
  ERROR: Failed building wheel for dlib
  Running setup.py clean for dlib
Failed to build dlib
Installing collected packages: dlib
  Running setup.py install for dlib ... error
    ERROR: Complete output from command 'f:\python36\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\fu\\AppData\\Local\\Temp\\pip-install-t50q34ym\\dlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\fu\AppData\Local\Temp\pip-record-4kwg7hfv\install-record.txt' --single-version-externally-managed --compile:
    ERROR: running install
    running build
    running build_py
    package init file 'dlib\__init__.py' not found (or not a regular file)
    running build_ext
    Traceback (most recent call last):
      File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 120, in get_cmake_version
        out = subprocess.check_output(['cmake', '--version'])
      File "f:\python36\lib\subprocess.py", line 356, in check_output
        **kwargs).stdout
      File "f:\python36\lib\subprocess.py", line 423, in run
        with Popen(*popenargs, **kwargs) as process:
      File "f:\python36\lib\subprocess.py", line 729, in __init__
        restore_signals, start_new_session)
      File "f:\python36\lib\subprocess.py", line 1017, in _execute_child
        startupinfo)
    FileNotFoundError: [WinError 2] 系統找不到指定的文件。

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 261, in <module>
        'Topic :: Software Development',
      File "f:\python36\lib\site-packages\setuptools\__init__.py", line 143, in setup
        return distutils.core.setup(**attrs)
      File "f:\python36\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "f:\python36\lib\distutils\dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "f:\python36\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "f:\python36\lib\site-packages\setuptools\command\install.py", line 61, in run
        return orig.install.run(self)
      File "f:\python36\lib\distutils\command\install.py", line 545, in run
        self.run_command('build')
      File "f:\python36\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "f:\python36\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "f:\python36\lib\distutils\command\build.py", line 135, in run
        self.run_command(cmd_name)
      File "f:\python36\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "f:\python36\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 129, in run
        cmake_version = self.get_cmake_version()
      File "C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\setup.py", line 125, in get_cmake_version
        "\n*******************************************************************\n")
    RuntimeError:
    *******************************************************************
     CMake must be installed to build the following extensions: dlib
    *******************************************************************

    ----------------------------------------
ERROR: Command "'f:\python36\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\fu\\AppData\\Local\\Temp\\pip-install-t50q34ym\\dlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\fu\AppData\Local\Temp\pip-record-4kwg7hfv\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\fu\AppData\Local\Temp\pip-install-t50q34ym\dlib\
WARNING: You are using pip version 19.1, however version 19.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

原因是由於dlib需要使用c++進行編譯,讓你首先安裝cmake

解決方法

  • 方法一: 非常費勁
Step 1: Install Visual Studio 2015
Step 2: Install CMake v3.8.2
Step 3: Install Anaconda 3
Step 4: Download Dlib
Step 5: Build Dlib library
Step 6: Update user environment variable – dlib_DIR
---
具體參考:https://www.learnopencv.com/install-dlib-on-windows/

  • 方法二: 安裝dlib前需要先安裝cmake 和boost。然後才能正確安裝dlib
pip install boost
pip install cmake
pip install dib
  • 方法三:通過對應版本的dlib的whl文件進行安裝

whl格式本質上是一個壓縮包,裏面包含了py文件,以及經過編譯的pyd文件。使得可以在不具備編譯環境的情況下,選擇合適自己的python環境進行安裝。
安裝方法很簡單,進入命令行輸入

pip install xxxx.whl

或者如果是升級

pip install -U xxxx.whl

這裏我們使用以下命令進行安裝,前提是下載對應文件,跳轉到對應的文件夾下:

pip install dlib-19.17.99-cp37-cp37m-win_amd64.whl

whl文件下載地址
鏈接: https://pan.baidu.com/s/1MKqW7WH2XP-J8MOLeq3cDA
提取碼: rfh8

參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章