在Windows 10上安装dlib

59

我想在Python中使用dlib进行图像识别。我已经在Windows 10上通过OpenCV成功运行了Python应用程序,但当我想从cmd安装dlib时,它给出了以下错误:

error: Cannot find cmake, ensure it is installed and in the path. You
can install cmake using the instructions at https://cmake.org/install/
You can also specify its path with --cmake parameter.

我该怎么办?

我的命令提示符错误


11
请编辑您的问题,包含实际的错误信息,而不仅仅是附加屏幕截图。这将使回答您的问题更容易,并且也将使具有类似问题的其他人受益。 - Grisha Levit
19个回答

93

从.whl文件安装Dlib(旧版本,请参见下一段)

Dlib 19.7.0

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

你可以测试它,从网站上下载一个示例,例如SVM_Binary_Classifier.py,然后在你的机器上运行它。
注意:如果出现此消息,你需要从源代码构建dlib

dlib-19.7.0-cp36-cp36m-win_amd64.whl不是此平台上支持的wheel文件


从源代码安装Dlib(如果上述解决方案不起作用)

Windows

Dlib > 19.7.0

  1. 下载CMake安装程序并进行安装:https://cmake.org/download/

  2. 将CMake可执行文件路径添加到环境变量中:

    set PATH="%PATH%;C:\Program Files\CMake\bin"

    注意:可执行文件的路径可能与C:\Program Files\CMake\bin不同,根据实际情况设置路径。

    注意:该路径设置仅为临时生效,若要永久生效,请在“高级系统设置” → “环境变量”选项卡中进行设置。

  3. 重新启动Cmd或PowerShell窗口以使更改生效。

  4. 从Python软件包索引中下载Dlib源代码(.tar.gz):https://pypi.org/project/dlib/#files,解压并进入文件夹。

  5. 检查Python版本:python -V。我的输出是:Python 3.7.2,因此我将其安装在Python3.x而不是Python2.x上。

注意: 如果您为不同的二进制文件设置了不同的变量,即python2 -Vpython3 -V,您可以同时安装它用于Python 2和Python 3。

注意: 在进行第6步之前,您可能需要以管理员身份打开 PowerShell。


运行安装:python setup.py install

Linux

Dlib 19.17.0

sudo apt-get install cmake

wget https://files.pythonhosted.org/packages/05/57/e8a8caa3c89a27f80bc78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz

tar -xvzf dlib-19.17.0.tar.gz

cd dlib-19.17.0/

sudo python3 setup.py install

注意:要在Python 2.x上安装Dlib,请使用python而不是python3,您可以通过python -V检查您的Python版本。

11
dlib-19.7.0-cp36-cp36m-win_amd64.whl不支持此平台。 - Flash Thunder
1
即使您已经安装了CMake,在Windows上您也会遇到问题,因为CMake的生成器默认设置为Nmake。 - Tony
2
谢谢,但我需要补充一些显而易见的东西!为了在Python中构建这个项目,请确保您的系统上有C++编译器! - Hossein
2
我遇到了这个问题“在Windows上构建Python扩展必须使用Visual Studio。如果您遇到此错误,则表示您尚未安装Visual C++。请注意,有许多Visual Studio版本,例如用于C#开发的Visual Studio。您需要安装用于C++的Visual Studio。”是否必须安装? - FAHAD SIDDIQUI
1
@FAHADSIDDIQUI,确实需要。安装后我收到了一个新的错误:找不到CMAKE_CXX_COMPILER - DaReal
显示剩余4条评论

72

按照以下步骤操作:

  • pip install cmake
  • 此处安装Visual Studio构建工具。
  • 在Visual Studio 2017中进入“个别组件”选项卡,选择“用于Cmake的Visual C++工具”,并在“编译器、生成工具和运行时”部分下勾选复选框。
  • pip install dlib

3
我尝试了这里大部分的方法,但dlib仍然似乎无法正常工作。 - Eshaka
1
是的,它可以工作。如果您收到“此平台不支持”的消息,请确认已从Visual Studio安装程序的“单个组件”选项卡中安装了Cmake的Visual C++工具。 - Y.AL
当按照这些步骤进行时,我遇到了一个新的错误“找不到CMAKE_C_COMPILER”。 - DaReal
哇,这就像是5GB的安装文件,有点让人沮丧。 - Ice Bear
这个工作得很好!即使是那种安装方式,我想这是因为算法太大了。 - Ice Bear

16

截止至目前(2020)有效。

pip install cmake
conda install -c conda-forge dlib

通过conda来安装的,你用的是哪个Python版本? - django

9
如果您正在使用Anaconda Prompt(推荐),
conda install -c conda-forge dlib

或者您可以使用下面提到的方法:

花费了很多时间之后,这条评论为我带来了正确的结果。 https://github.com/ageitgey/face_recognition/issues/802#issuecomment-544232494

  1. 下载Python 3.6.8并安装,确保将其添加到PATH。

  2. 在命令提示符中使用以下命令在您的电脑/笔记本电脑上安装NumPy、scipy、matplotlib和pandas:

    pip install numpy

    pip install scipy

    pip install matplotlib

    pip install pandas

  3. 前往 https://pypi.org/project/wheel/#files ,右键单击文件名"wheel-0.33.6-py2.py3-none-any.whl"(21.6 kB),然后复制链接地址。然后打开命令提示符,输入此命令“python -m pip install”后面加一个空格,然后粘贴已复制的链接。安装成功后进入下一步。

  4. 然后转到此链接:https://pypi.org/simple/dlib/,右键单击文件名"dlib-19.8.1-cp36-cp36m-win_amd64.whl",然后复制链接地址。然后打开命令提示符并执行与步骤2相同的操作,输入此命令"python -m pip install",在该命令的空格后面粘贴已复制的链接。 然后dlib将成功安装。

  5. 之后,键入python并按Enter,然后键入import dlib来检查是否完全安装了dlib。随后,您可以继续安装适用于Python 3.6的face recognition.py。

这是安装完dlib和face recognition之后的效果。


6

正如你在上面看到的许多答案,但是我想发布一个快速解决方案,它肯定适用于Anaconda3。我没有选择Visual Studio,因为它会消耗大量内存。

请按照以下步骤进行。

Step 1:
Install windows cmake.msi and configure environment variable

Step 2:
Create a conda environment, and install cmake using the below command.
pip install cmake

Step 3:
conda install -c conda-forge dlib

请注意,你可能会找到其他几个dlib软件包,但以上这个软件包将会完美地与本程序配合使用。
dlib将会成功安装。

这是唯一一个对我有效的方法,当在管理员权限的Anaconda PowerShell终端中运行第3步时。 - DaReal

5

您需要安装Cmake

dlib是一个带有Python绑定的C++库。它需要先进行构建。我的猜测是一旦您安装了Cmake,这将自动发生。


1
我已经安装了Cmake,你能告诉我如何使用它吗?在Cmake中,“源代码在哪里?”和“二进制文件放在哪里?”应该填写什么? - Drill
@Drill 只需重新调用 pip install dlib。 - TruckerCat
@Drill 确保 cmake 在您的路径变量中。 - TruckerCat
我尝试了同样的方法并尝试调用pip install dlib。它抛出错误“error MSB4019:未找到导入的项目“C:\Microsoft.Cpp.Default.props”。请确认<Import>声明中的路径正确,并且文件存在于磁盘上。” 我的系统中没有“C:\Microsoft.Cpp.Default.props”。有没有什么办法可以解决这个问题? - AbhinavVaidya8
@AbhinavVaidya8 对不起,我不知道如何解决这个问题。 - TruckerCat
对我来说解决了问题。通过pip和Visual Studio安装cmake还不够。 - Olivier

4

所以基本上我已经寻找了两天的解决方案。 我尝试了一切

  • 安装 Cmake
  • 添加路径
  • 从答案中提到的链接安装 dlib
  • 安装 numpy、scipy、matplotlib、pandas 等等
  • 等等等等

但唯一有效的解决方案是 安装 MICROSOFT VISUAL STUDIO C++

在安装 MS VS C++ 后,我运行了命令 pip install dlib ,它像魅力一样工作。 祝你好运

下载 Visual Studio C++ 的链接

https://visualstudio.microsoft.com/thank-you-for-downloading-visual-studio-for-cplusplus/?sku=Community&rel=16&rid=30005


谢谢Bilal!令人难以置信的是,每个回答似乎都忘记了CMake不是编译器,并且人们可能根本没有安装任何C++编译器,特别是Python开发人员。我正在NUC上从头开始安装,我只是在努力确定编译DLib的绝对最低要求是什么。我只是为了生成一个8MB的pyc而安装了16GB的VS C++垃圾。无论如何,为什么DLib不像其他所有东西一样分发编译呢? - Ricardo

1

1
根据您安装的Python版本选择dlib.whl文件。例如,如果安装的Python版本是3.6.7,64位系统或者Python是3.5.0 32位,则分别选择dlib-19.5.1-cp36-cp36m-win_amd64.whl和dlib-18.17.100-cp35-none-win32.whl。加粗的文本表示支持的Python版本。
这里下载轮廓文件,或复制链接地址。
pip install dlib-19.5.1-cp36-cp36m-win_amd64.whl

针对上述方法,.whl文件应该放在工作目录中

或者

以下链接是支持Python3.6的dlib链接,对于Python 3.5,您可以使用dlib 35.whl链接进行替换

pip install https://files.pythonhosted.org/packages/24/ea/81e4fc5b978277899b1c1a63ff358f1f645f9369e59d9b5d9cc1d57c007c/dlib-19.5.1-cp36-cp36m-win_amd64.whl#sha256=7739535b76eb40cbcf49ba98d894894d06ee0b6e8f18a25fef2ab302fd5401c7

1

1. 使用 Python 3.6.9 版本

2. 首先安装 cmake。

conda install -c anaconda cmake
  1. 使用以下命令安装dlib

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


这是在Windows上最简单的方法。您只需要回到Python 3.6.x,然后执行pip install cmake,接着执行pip install https://pypi.python.org/packages/da/06/bd3e241c4eb0a662914b3b4875fc52dd176a9db0d4a2c915ac2ad8800e9e/dlib-19.7.0-cp36-cp36m-win_amd64.whl#md5=b7330a5b2d46420343fbed5df69e6a3f。我在我的人脸检测系统中仅使用了这个,以便于安装。请查看https://github.com/UBISOFT-1/Project_Exodus.git。 - Muneeb Ahmad Khurram

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