Faiss 安装 – MacOS High Sierra(10.13.2)
这个现在已经不适用啦,现在可以看这个官方的安装文档的介绍!
https://github.com/facebookresearch/faiss/blob/master/INSTALL.md
faiss快速检索,你值得拥有
之前发过一篇 Faiss cpu 版本安装 – CentOS7 但是由于我是直接在macOS系统上开发,所以较为的不方便,所以就也在macOS系统上弄了一个环境。其实很简单,安装步骤如下:
下载 Faiss源代码
$ git clone https://github.com/facebookresearch/faiss.git
当然大家如果想更清楚的看清目录结构的话,也可以上github上进行查看:
https://github.com/facebookresearch/faiss
安装编译需要的工具
其实这两部分需要安装的,都在之后需要编译的文件中有说明:
$ brew install llvm
$ brew install swig
将需要编译的文件拷贝到faiss目录
那么这里 m a k e f i l e . i n c makefile.inc makefile.inc就是我们需要编译的文件了,所有的配置都在里面:
$ cd faiss
$ cp example_makefiles/makefile.inc.Mac.brew makefile.inc
编译
(可能会报:warning,但是不用管)
$ make all
执行测试用例
#需要手工指定动态库的搜索路径,否则会提示“dyld: Library not loaded: @rpath/libomp.dylib”,导致进程无法启动
$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/opt/llvm/lib/
$ ./tests/demo_ivfpq_indexing
trouble shooting
如果你也是和我一样,刚升级的系统,那么可能会出现以下报错:
那么这个报错的原因主要是因为,macOS系统在升级的时候将 / u s r / l o c a l /usr/local /usr/local 文件夹给删除了,所以说 / u s r / l o c a l / C e l l a r / l l v m / 5.0.0 / i n c l u d e / c + + / v 1 / s t r i n g . h /usr/local/Cellar/llvm/5.0.0/include/c++/v1/string.h /usr/local/Cellar/llvm/5.0.0/include/c++/v1/string.h 文件夹下的 . h .h .h 文件在 / u s r / l o c a l /usr/local /usr/local 中找不到,所以没有办法执行。
解决方法如下:
Mac下有个专门管理开发环境的工具xcode-select,通过它可以下载命令行开发工具(包括gcc等等)。在终端输入:
$ xcode-select --install
上面命令会去下载安装命令行开发工具,完成之后 / u s r / i n c l u d e /usr/include /usr/include 就出现了。这个工具还可以用于管理 X C o d e XCode XCode多版本,具体见:
$ man xcode-select$