使用 pip 安装 Dlib 时出错

Posted

技术标签:

【中文标题】使用 pip 安装 Dlib 时出错【英文标题】:getting Error in installing Dlib using pip 【发布时间】:2019-06-14 13:34:35 【问题描述】:
C:\Users\suraj>pip install dlib
Collecting dlib
  Using cached https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz
Building wheels for collected packages: dlib
  Running setup.py bdist_wheel for dlib ... error
  Complete output from command c:\users\suraj\appdata\local\programs\python\python37\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\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\suraj\AppData\Local\Temp\pip-wheel-mu6pctca --python-tag cp37:
  running bdist_wheel
  running build
  running build_py
  package init file 'dlib\__init__.py' not found (or not a regular file)
  running build_ext
  Building extension for Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]
  Invoking CMake setup: 'cmake C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\tools\python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\build\lib.win-amd64-3.7 -DPYTHON_EXECUTABLE=c:\users\suraj\appdata\local\programs\python\python37\python.exe -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\build\lib.win-amd64-3.7 -A x64'
  -- Building for: NMake Makefiles
  CMake Error in CMakeLists.txt:
    Generator

      NMake Makefiles

    **does not support platform specification, but platform
      x64**

    was specified.


  **CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
  CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage**
  -- Configuring incomplete, errors occurred!
  See also "C:/Users/suraj/AppData/Local/Temp/pip-install-ytzp5t26/dlib/build/temp.win-amd64-3.7/Release/CMakeFiles/CMakeOutput.log".
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 257, in <module>
      'Topic :: Software Development',
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\site-packages\setuptools\__init__.py", line 143, in setup
      return distutils.core.setup(**attrs)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\site-packages\wheel\bdist_wheel.py", line 188, in run
      self.run_command('build')
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
      cmd_obj.run()
    File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 133, in run
      self.build_extension(ext)
    File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 170, in build_extension
      subprocess.check_call(cmake_setup, cwd=build_folder)
    File "c:\users\suraj\appdata\local\programs\python\python37\lib\subprocess.py", line 347, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', 'C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\tools\\python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\build\\lib.win-amd64-3.7', '-DPYTHON_EXECUTABLE=c:\\users\\suraj\\appdata\\local\\programs\\python\\python37\\python.exe', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\build\\lib.win-amd64-3.7', '-A', 'x64']' returned non-zero exit status 1.

  ----------------------------------------
  **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
    Complete output from command c:\users\suraj\appdata\local\programs\python\python37\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\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\suraj\AppData\Local\Temp\pip-record-adx5_t4v\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    package init file 'dlib\__init__.py' not found (or not a regular file)
    running build_ext
    Building extension for Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]
    Invoking CMake setup: 'cmake C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\tools\python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\build\lib.win-amd64-3.7 -DPYTHON_EXECUTABLE=c:\users\suraj\appdata\local\programs\python\python37\python.exe -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\build\lib.win-amd64-3.7 -A x64'
    -- Building for: NMake Makefiles
    CMake Error in CMakeLists.txt:
      Generator

        NMake Makefiles

      does not support platform specification, but platform

        x64

      was specified.


    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    -- Configuring incomplete, errors occurred!
    See also "C:/Users/suraj/AppData/Local/Temp/pip-install-ytzp5t26/dlib/build/temp.win-amd64-3.7/Release/CMakeFiles/CMakeOutput.log".
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 257, in <module>
        'Topic :: Software Development',
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\site-packages\setuptools\__init__.py", line 143, in setup
        return distutils.core.setup(**attrs)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\site-packages\setuptools\command\install.py", line 61, in run
        return orig.install.run(self)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\command\install.py", line 545, in run
        self.run_command('build')
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\command\build.py", line 135, in run
        self.run_command(cmd_name)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 133, in run
        self.build_extension(ext)
      File "C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\setup.py", line 170, in build_extension
        subprocess.check_call(cmake_setup, cwd=build_folder)
      File "c:\users\suraj\appdata\local\programs\python\python37\lib\subprocess.py", line 347, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', 'C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\tools\\python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\build\\lib.win-amd64-3.7', '-DPYTHON_EXECUTABLE=c:\\users\\suraj\\appdata\\local\\programs\\python\\python37\\python.exe', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\dlib\\build\\lib.win-amd64-3.7', '-A', 'x64']' returned non-zero exit status 1.

    ----------------------------------------
Command "c:\users\suraj\appdata\local\programs\python\python37\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\suraj\\AppData\\Local\\Temp\\pip-install-ytzp5t26\\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\suraj\AppData\Local\Temp\pip-record-adx5_t4v\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\suraj\AppData\Local\Temp\pip-install-ytzp5t26\dlib\

这是我在命令提示符下使用 pip 安装 dlib 时遇到的错误。 我已经有了 openCV 和 matplotlib 和 numpy。

【问题讨论】:

您发布的错误消息部分是通用的,并且会显示在任何错误上。请显示完整的错误。 @hoefling 已更新,请检查您是否可以帮助我 【参考方案1】:

不久前我遇到了同样的问题。我做了一些事情,它奏效了

    安装 C 和 C++ 编译器并将它们添加到路径中。

    安装 Visual Studio 2015 (VS2015) 下载器。 (任何其他版本可能不起作用)。这个堆栈溢出线程可能会有所帮助:How to download Visual Studio Community Edition 2015 (not 2017)

    通过VS2015安装所有依赖。(支持C、C++、MS Build、windows SDK等)

    再次尝试使用 pip install dlib。

我希望这会有所帮助!

【讨论】:

如果我用 c 和 cpp 包安装 Visual Studio 那么它可以工作吗? 您也需要安装这些,但您还需要 c 和 c++ 编译器,如 gcc.exe 和 g++.exe。您必须将这些添加到环境路径变量中。 我已经安装了 minGW,现在我有 gcc 和编译平台可以工作了 能不能分享下要下载的编译器的链接。 mingw32-gcc-dev, mingw32-gcc-bin, mingw32-gcc-g++dev, mingw32-gcc-g++bin【参考方案2】:

对于那些面临同样问题但使用 mac OS 的人 --> 我执行了以下步骤并解决了同样的问题。我有 macOS Big Sur 11.1 和 python 3.8.3。

pip3 install cmake 
pip3 install dlib

【讨论】:

根据问题中的错误,作者运行的是Windows而不是macOS。 哦,我只是为任何使用 macOS 并面临同样问题的人发表评论。很抱歉没有澄清! 在 linux 机器上也为我工作过。 (在 Ubuntu 主机上运行 CoCalc 的 Docker 映像,以防您对细节感兴趣。)【参考方案3】:

在这里记录一下:在 debian 10 上。pip install dlib 失败,即使首先使用 pip install cmake。解决方案? sudo apt install libopenblas-devpip install dlib --verbose 的输出提到它是一个可选安装,可以让你的代码运行得更快。事实证明,如果不先安装它,每次安装都会失败。安装成功。

【讨论】:

【参考方案4】:

您可能需要先安装cmake:“pip install cmake

然后安装dlib 即:“pip install dlib”。

肯定会 100% 工作。

注意:你必须有一个快速的处理器来构建***,否则它需要超过 5 分钟。

【讨论】:

【参考方案5】:

我在安装 dlib 时遇到了很多错误,并使用下面的 .whl 解决:

 pip install https://pypi.python.org/packages/da/06/bd3e241c4eb0a662914b3b4875fc52dd176a9db0d4a2c915ac2ad8800e9e/dlib-19.7.0-cp36-cp36m-win_amd64.whl#md5=b7330a5b2d46420343fbed5df69e6a3f

从此link下载轮盘

这可能会有所帮助:)

【讨论】:

dlib-19.7.0-cp36-cp36m-win_amd64.whl 不是该平台支持的***。 这是我运行上述行进行安装时得到的结果 您尝试在哪个平台上执行窗口? 是的,我正在使用 Windows,并使用命令提示符和 pip install 命令进行安装 试试这个 pip install files.pythonhosted.org/packages/24/ea/…

以上是关于使用 pip 安装 Dlib 时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 pip 安装 face_recognition 模块时出错

在 Windows 上安装 Dlib 时出错(对于 python2)

使用 pip 安装 dlib 时遇到问题

使用 GPU 支持安装 dlib 时出错

使用 Windows 10 在 Python 3.5 上安装 dlib 时出错

安装/使用 dlib 以与 Eclipse CDT、MinGW 和 OpenCV 一起使用时出错