问题描述
背景:
我正在AWS jupyter
ec2实例(使用Fedora Linux)上运行 sagemaker
笔记本,我的要求之一是dlib
。
但是,dlib
(默认情况下)使用xorg's x11
库来提供GUI支持,并且这些库未安装在sagemaker
实例上。我不需要GUI支持,并且sagemaker
不支持yum安装,因此我试图在没有它们的情况下进行构建。
我已经克隆了dlib
的github存储库,并尝试使用python setup.py
进行构建,这会引发x11错误。我通读了网站,上面写着you can define the DLIB_NO_GUI_SUPPORT
preprocessor directive to compile without GUI support。听起来不错!我通读了setup.py文件,发现可以通过运行python setup.py x DLIB_NO_GUI_SUPPORT
来添加该文件,其中x
是[--no
,--set
,--compiler-flags
之一,和-G
]。
我不知道是哪一个,所以我都尝试了:
-
python setup.py --no DLIB_NO_GUI_SUPPORT
-
python setup.py --set DLIB_NO_GUI_SUPPORT
-
python setup.py --compiler-flags DLIB_NO_GUI_SUPPORT
-
python setup.py -G DLIB_NO_GUI_SUPPORT
他们都没有工作。
问题:
使用DLIB_NO_GUI_SUPPORT
为dlib
设置setup.py
的预处理器指令的正确语法是什么?
解决方法
您可以尝试先构建源,将-D DLIB_NO_GUI_SUPPORT
传递给cmake。然后,您可以像以前一样安装python包装器。