在 Mac OSX 10.10 上为 python 安装 Dlib 时遇到问题

Trouble installing Dlib for python on Mac OSX 10.10

我正在尝试在我的计算机上为 python 安装 dlib-18.16 (运行 Mac OSX 10.10)。我已经安装了 boost python 以及 X11,但是当 运行 ./compile_dlib_python_module.bat 按照下载文件后的指示我遇到了 运行 麻烦。

我得到的错误很多,但看起来像这样

[  1%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/fonts.o
In file included from /Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/fonts.cpp:14:
/Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/nativefont.h:313:21: error: use
      of undeclared identifier 'XAllocColor'
                    XAllocColor(d, cmap, &xcol);

这会持续一段时间并以

结束
/Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/nativefont.h:400:21: error: use
      of undeclared identifier 'XFillRectangle'
                    XFillRectangle(d, pix, gc, 0, 0, width, height);
                    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [dlib_build/CMakeFiles/dlib.dir/gui_widgets/fonts.o] Error 1
make[1]: *** [dlib_build/CMakeFiles/dlib.dir/all] Error 2
make: *** [all] Error 2

我检查了一些缺失的函数,例如 XFillRectangle,并在 python 的 anaconda 安装中的一些 .h 文件中找到了它们的声明(在查看 dlib_build 文件时,安装程序似乎找到了 anaconda 安装)。有没有人对如何解决这个问题有任何想法?

我意识到我必须进入 CMakeCache.txt 文件并手动将 X11 路径从 anaconda 更改为 usr/X11,因为 X11 .h 文件的 anaconda 版本缺少其中一些XQuartz 函数。现在一切正常。

我在 PyPi (19.4.0) 版本中遇到了这个问题。 直接从源代码安装 (19.4.99) 似乎可行。

所以这两个版本之间的某些东西解决了这个问题。

从源安装的命令:

git clone https://github.com/davisking/dlib.git
cd dlib
pip install .

仅供参考,这是我系统上的 Xlib.h 文件,因为假设它正在选择一个没有这些符号的 XLib.h 的不同版本。

运行 OS-X 10.11.4 与 Python 2.7。我肯定安装了 XQuartz。

$ mdfind -name Xlib.h
/usr/local/Cellar/dlib/19.4/share/doc/dlib/docs/dlib/gui_core/xlib.h.html
/usr/local/Cellar/dlib/19.4/include/dlib/gui_core/xlib.h
/Users/<username>/Workspace/dlib/dlib/gui_core/xlib.h
/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/Xlib.h
/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/Xlib.h
/opt/X11/include/X11/Xlib.h
/opt/X11/include/cairo/cairo-xlib.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/Xlib.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/Xlib.h