编译和开发
面向 Python 的开发环境搭建
推荐的 Faiss(Facebook AI 相似性搜索库)开发环境搭建方式是:先创建一个没有 Faiss但包含所有必须依赖项的 conda 环境。
在 Mac M1 芯片上的操作命令
详细步骤请参考原始链接: https://gist.github.com/mdouze/2b96e804ee2825e72323c0a296061c7e
提示
本章节主要介绍如何为 Mac M1(基于 ARM 架构)搭建 Faiss 的 Python 开发环境。其它平台(如 Intel Mac 或 Linux)可参考类似流程,但细节上可能略有不同。
创建并激活 Conda 环境
使用 conda 命令创建一个新的 Python 环境。例如:
conda create -n faiss-dev python=3.9
conda activate faiss-dev
安装必要依赖包
安装 Faiss 源代码编译所需的依赖项:
conda install cmake numpy scipy cython
conda install -c conda-forge swig
cmake:跨平台自动化构建工具numpy,scipy:科学计算库cython:实现 C/C++ 与 Python 的接口swig:自动生成语言绑定工具
备注
有些依赖项如 swig 可能需要指定 conda-forge 频道。
下载并编译 Faiss 源码
假设你已经从 GitHub 克隆了 Faiss 仓库:
git clone https://github.com/facebookresearch/faiss.git
cd faiss
然后使用以下命令编译(以 Mac M1 为例):
cmake -B build -DFAISS_ENABLE_PYTHON=ON -DFAISS_ENABLE_C_API=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j 4 # -j 4 表示使用4个并行线程编译
构建并安装 Python 包
进入 Python 目录,使用 pip install 进行本地安装:
cd faiss/python
pip install .
important
确保你当前已激活 conda 环境,并具备写入权限。
编译完成后的测试
在 Python 命令行执行,验证是否成功安装:
import faiss
faiss.__version__
如果没有报错,说明 Faiss 已经安装成功,可开始开发和测试。
注意事项
备注
- 对于不同的操作系统和芯片架构(如 Linux、x86 架构 Mac),实际依赖或编译参数可能有所不同,请根据实际情况适当调整。
- 若遇到编译问题,可优先参考 Faiss 官方文档和常见问题解答。
适用场景
- 本地开发与功能调试
- 定制 Faiss C++ 层算法并调用 Python 接口
- 对 Faiss 代码有更深入的研究和性能优化需求
【本节内容完】