非度量空间库(NMSLIB)是一种高效的跨平台相似性搜索库和用于评估相似性搜索方法的工具包。核心库并没有任何第三方依赖。NMSLIB是一个可扩展的库,这意味着可以添加新的搜索方法和距离函数。NMSLIB可以直接在C ++和Python(版本需要大于等于Python 3.5)中使用1。
项目地址:https://github.com/nmslib/nmslib
Python官方目前提供的Pypi源(https://pypi.org/project/nmslib/#files)目前只支持到Python3.9,这个库应该是后续没有过多维护了,但是一些Python开源项目还在用,所以使用Python 3.5-3.9的用户执行下面的安装命令即可。
pip install nmslib
但是对于Python版本大于3.9怎么办?
这里参考了官方的构建方法2,首先将nmslib库git下载下来,如下面所示
git clone https://github.com/nmslib/nmslib.git
进入到python_bindings文件夹
cd python_bindings
查看requirements.txt的文件,需要安装两个库pybind11和sphinx_rtd_theme,这里默认numpy库已经有了。
pip install pybind11
pip install sphinx_rtd_theme
完成上述步骤以后,并且也装好了Visual Studio的编译器,参考文献2中的Building from sources部分。也就是下面一行。
python setup.py build_ext
python setup.py install
最好再检查下python环境里面的nmslib库,把编译好的按照其他库(如numpy)的方式整理好。
参考文献