安装pyserini遇Unsupported compiler错误,求解决办法
解决pyserini安装中nmslib的C++11支持问题
以下是几个直接可行的解决方法:
方法1:安装时强制指定C++11编译标准
直接在pip安装命令中通过环境变量传递编译参数,确保clang使用C++11标准编译nmslib:
CC=clang CXX=clang++ CXXFLAGS="-std=c++11" pip install pyserini
如果需要单独处理nmslib,可执行:
CC=clang CXX=clang++ CXXFLAGS="-std=c++11" pip install nmslib>=2.1.1
方法2:通过pip全局选项指定编译标准
给pip传递编译扩展参数,强制启用C++11:
pip install nmslib>=2.1.1 --global-option=build_ext --global-option="-std=c++11"
完成nmslib安装后,再执行pip install pyserini即可。
方法3:设置全局环境变量永久生效
如果不想每次安装都添加参数,可将编译标准写入环境变量:
- 打开bash配置文件:
vim ~/.bashrc - 添加以下内容:
export CC=clang export CXX=clang++ export CXXFLAGS="-std=c++11"
- 生效配置:
source ~/.bashrc - 重新执行
pip install pyserini
方法4:手动编译安装nmslib
如果上述方法无效,可手动编译nmslib并指定C++标准:
- 获取nmslib的源码包并解压到本地
- 进入源码目录,创建编译目录:
mkdir build && cd build
- 用cmake指定C++11标准并编译:
cmake -DCMAKE_CXX_STANDARD=11 .. make -j$(nproc)
- 返回源码根目录,安装python绑定:
cd .. pip install .
完成后再安装pyserini。
内容的提问来源于stack exchange,提问作者Yvonne Wu
相关产品推荐
相关产品推荐

