在Windows 10上安装Python的Dlib出现错误

5
我正在尝试安装dlib。我按照网上的每一个提示都尝试了,但它就是不起作用。 我正在使用/已经尝试过以下环境:
  • windows 10
  • cmake 3.21.4(已在PATH环境变量中)
  • python 3.8.12和3.6.4
  • conda 4.10.3
  • pip 21.3.1
  • visual studio 2019 vs组件(1) vs组件(2)

我已经安装了conda和pip,并尝试了以下命令:

  • pip install dlib
  • pip install dlib --verbose
  • pip install "一些url"
  • conda install -c conda-forge dlib
  • conda install -c conda-forge/label/cf201901 dlib

我遇到的错误信息是:

 Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\sophi\AppData\Local\Temp\pip-install-3w7lgrlb\dlib_ffabe5e6a08e472b835f598e7803e3d4\setup.py", line 222, in <module>
        setup(
      File "c:\users\sophi\anaconda3\lib\site-packages\setuptools\__init__.py", line 159, in setup
        return distutils.core.setup(**attrs)
      File "c:\users\sophi\anaconda3\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "c:\users\sophi\anaconda3\lib\distutils\dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "c:\users\sophi\anaconda3\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "c:\users\sophi\anaconda3\lib\site-packages\setuptools\command\install.py", line 68, in run
        return orig.install.run(self)
      File "c:\users\sophi\anaconda3\lib\distutils\command\install.py", line 545, in run
        self.run_command('build')
      File "c:\users\sophi\anaconda3\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\users\sophi\anaconda3\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "c:\users\sophi\anaconda3\lib\distutils\command\build.py", line 135, in run
        self.run_command(cmd_name)
      File "c:\users\sophi\anaconda3\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\users\sophi\anaconda3\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "C:\Users\sophi\AppData\Local\Temp\pip-install-3w7lgrlb\dlib_ffabe5e6a08e472b835f598e7803e3d4\setup.py", line 134, in run
        self.build_extension(ext)
      File "C:\Users\sophi\AppData\Local\Temp\pip-install-3w7lgrlb\dlib_ffabe5e6a08e472b835f598e7803e3d4\setup.py", line 174, in build_extension
        subprocess.check_call(cmake_build, cwd=build_folder)
      File "c:\users\sophi\anaconda3\lib\subprocess.py", line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '/m']' returned non-zero exit status 1.
    Running setup.py install for dlib ... error
ERROR: Command errored out with exit status 1: 'c:\users\sophi\anaconda3\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\sophi\\AppData\\Local\\Temp\\pip-install-3w7lgrlb\\dlib_ffabe5e6a08e472b835f598e7803e3d4\\setup.py'"'"'; __file__='"'"'C:\\Users\\sophi\\AppData\\Local\\Temp\\pip-install-3w7lgrlb\\dlib_ffabe5e6a08e472b835f598e7803e3d4\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\sophi\AppData\Local\Temp\pip-record-kvd3vwdq\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\sophi\anaconda3\Include\dlib' Check the logs for full command output.

对我而言,看起来问题可能出在cmake命令上,但我不知道具体是什么问题。我使用了pip install cmake和从源代码安装cmake,两者都没有起作用。有人有解决方法吗?


1
关于 cmake --build . --config Release -- /m 的输出信息很少。也许这些信息可以通过你发布的完整日志获得。或者,它可能会为您提供有关如何使用 cmake 的信息,甚至是文件系统上已配置的 cmake 项目,您可以使用该项目执行 cmake 命令以获取有关问题的更多详细信息。 - fabian
我尝试了“pip install --verbose dlib”,但输出基本相同。然而,现在我已经成功安装了dlib,如下面的答案中所述。无论如何,感谢您的建议(: - sophie
2个回答

2

可能有点晚回复,但我在尝试在Visual Studio Code上安装dlib时遇到了完全相同的问题。当我尝试运行命令"pip install dlib"时,我收到了以下错误提示:

Collecting dlib
Using cached dlib-19.23.1.tar.gz (7.4 MB)
Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for dlib, since package 'wheel' is not installed.
Installing collected packages: dlib
  Running setup.py install for dlib ... error
  error: subprocess-exited-with-error

  × Running setup.py install for dlib did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      running install
      running build
      running build_py
      package init file 'tools\python\dlib\__init__.py' not found (or not a regular file)
      running build_ext

      ERROR: CMake must be installed to build dlib

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> dlib

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

我的下一步尝试是安装cmake,安装成功了,但是我收到一个警告,说exe文件的路径没有添加到我的路径中。这导致在终端运行“cmake --version”时输出警告信息。
'cmake' is not recognized as an internal or external command,
operable program or batch file.

我怀疑程序无法正确运行,为了解决这个问题,我只需复制安装cmake后终端输出的路径,并进入“高级系统设置”->“高级选项卡”->“环境变量”->“用户变量”(打开“你的桌面名称”)下的“Path”,然后点击“新建”按钮并粘贴该路径。
按照这些步骤后,运行命令“cmake --version”就可以正确地输出已安装版本,这意味着它正在访问正确的路径。之后,“pip install dlib”就能完美地工作,如下图所示。
Collecting dlib
  Using cached dlib-19.23.1.tar.gz (7.4 MB)
  Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for dlib, since package 'wheel' is not installed.
Installing collected packages: dlib
  Running setup.py install for dlib ... done
Successfully installed dlib-19.23.1

我希望这可以帮到你,这是我在安装dlib时采用的一种方法。由于你提到cmake已经在路径上,我建议你运行命令检查版本是否正确打印出来。


0

尽管我试图测试我问题中提到的每个命令的组合,但显然有一个组合我没有尝试过:

  • conda环境使用python 3.6.4,然后
  • conda install -c conda-forge dlib

无法在Windows 10和Python 3.7上安装dlib 正如Berkay所提到的,anaconda显然需要python <=3.6.x,这对我解决了问题。 ! pip install dlib在此环境中无法工作(可能是由于此环境中的另一个版本问题)!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接