C++环境
首先我们要安装openblas,直接brew install openblas。注意如果没有swig,接下来就brew install swig, 不然最后安装python接口会报错。接下来就是:
git clone https://github.com/facebookresearch/faiss.git
然后进入faiss目录,依次configure --without-cuda(我安装的是cpu版本) -> make -> make install三部曲,但是在make步骤时总是出现下图所示的错误:
最后发现出错的原因是编译时用的是mac自带的clang编译器,我们需要用gcc去编译。在安装openblas时会自动安装依赖项gcc,然后我们去/usr/local/bin目录下面将cpp-9/c++-9/gcc-9/g++-9这4个文件名的后缀-9去掉,保证which g++/gcc/cpp/c++的结果是/usr/local/bin/*,而不是/usr/bin/*,因为/usr/bin目录下的g++/gcc/cpp/c++是系统自带clang的。
安装python接口
进入faiss目录下面执行make py命令,然后进入里面的python目录下面执行make install命令。注意最后只会打包成一个egg文件放到你的site-packages目录下面,这时候你直接import faiss会报错,你需要解压egg文件,直接unzip命令就能解压,解压之后会出现两个文件,一个是faiss包文件,一个是egg-info文件,可以重命名一下egg-info文件,我的就重命名成了faiss-1.5.3-py3.6.egg-info,这时候就大功告成,你可以直接import faiss,调用faiss的python接口了。