Linux安装Faiss失败

我的python版本是3.8
我想在linux上安装faiss,用了这个命令

conda install faiss-cpu -c pytorch

然后用conda list命令
有以下信息,我以为安装成功了

faiss-cpu                 1.7.4           py3.8_h8c27c75_0_cpu    pytorch
mkl                       2023.1.0         h6d00ec8_46342  
mkl-service               2.4.0            py38h5eee18b_1  

但是当我用python -c "import faiss"验证时
却出现了以下错误

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'faiss'

我反复卸载重装都没有用,网上也没有解决办法
我又在虚拟环境里试了试,也是这样。

然后我又用上面的办法在虚拟环境里安装了faiss-cpu
import faiss在虚拟环境验证时
出现了以下错误

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/miniconda3/envs/myenv/lib/python3.10/site-packages/faiss/__init__.py", line 16, in <module>
    from .loader import *
  File "/usr/local/miniconda3/envs/myenv/lib/python3.10/site-packages/faiss/loader.py", line 65, in <module>
    from .swigfaiss import *
  File "/usr/local/miniconda3/envs/myenv/lib/python3.10/site-packages/faiss/swigfaiss.py", line 13, in <module>
    from . import _swigfaiss
ImportError: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or directory

然后我用find . -name libmkl_intel_lp64.so命令查找 libmkl_intel_lp64.so,却根本找不到
我是个初学者,求问有没有人知道到底是什么问题,这个faiss改怎么安装
为什么conda list显示有库却import不到

可能是因为您没有将conda环境中的python路径添加到系统环境变量中导致的。您可以尝试在终端中输入以下命令:

export PATH=~/anaconda3/envs/your_env_name/bin:$PATH

其中,your_env_name是您的conda环境名称。然后再次运行python -c "import faiss",看看能否成功导入faiss模块。如果仍然无法导入,您可以尝试重新安装faiss,或者尝试使用pip安装faiss:

pip install faiss

重新安装faiss-cpu试下

pip uninstall faiss
conda install faiss-cpu -c pytorch

发生这个问题,大概率就是faiss库的安装不正确或者版本不正确导致的。建议从从清华镜像上下载faiss-cpu-1.7.1版{faiss-cpu},或者在清华源网址里找到对应版本的whl文件下载: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
之后,进入到文件目录下,如下载的是wh包l,则:
pip install faiss-cpu/faiss-gpu[对应包名]
如果下载的是压缩包,则:
conda install --use-local faiss-cpu/faiss-gpu[对应包名]

换一个镜像源,重新安装试试

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    这个问题可能是因为缺少Faiss的依赖库造成的。推荐以下步骤来解决这个问题:

    1. 安装依赖库:
    sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
    
    1. 清理已安装的Faiss:
    pip uninstall faiss-gpu
    
    1. 重新安装Faiss:
    pip install faiss-gpu
    
    1. 检查是否安装成功:
    python -c 'import faiss; print(faiss)'
    

    如果以上步骤不能解决问题,可以尝试手动编译Faiss:

    1. 下载Faiss源码:
    git clone https://github.com/facebookresearch/faiss.git
    
    1. 安装依赖库:
    sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev cmake libpython3-dev python3-numpy python3-pip
    
    1. 进入Faiss目录:
    cd faiss
    
    1. 编译Faiss:
    ./configure --without-cuda --with-cuda-libraries=/usr/local/cuda/lib64/stubs
    make -j$(nproc)
    
    1. 安装Faiss:
    sudo make install
    
    1. 检查是否安装成功:
    python -c 'import faiss; print(faiss)'
    

    希望以上解决方案能够帮助你解决问题。如果还有其他问题,请随时问我。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

按照这个步骤试一下


#安装cpu版本
#更新conda
conda update conda
#先安装mkl
conda install mkl
#安装faiss-cpu
conda install faiss-cpu -c pytorch
#测试安装是否成功
python -c "import faiss"

确认是否卸载干净,MKL 的版本不匹配,Faiss 需要特定版本的 MKL查找下,用那个命令查找不到,说明在系统上确实没有安装 Intel MKL 库

  1. 此文件不存在于当前工作目录中。请确保您正在查找正确的目录。如果您知道该文件位于哪个目录中,请将命令替换为 find /path/to/directory -name libmkl_intel_lp64.so
  2. 您没有足够的权限访问该文件。请确保您拥有访问该文件所在目录的权限。可以尝试使用 sudo 命令以超级用户身份运行 find 命令。
  3. 文件名拼写错误。请再次检查文件名的拼写,并确保它与实际文件名完全匹配(包括大小写)。
    如果您仍然无法找到该文件,请检查是否已安装 Intel MKL 库,并且该库是否包含所需的文件。

环境问题,引用GPT排查一下:
这个问题可能是由于Faiss库没有正确安装或者环境变量设置不正确导致的。你可以尝试以下步骤来解决这个问题:

  1. 首先,确保你的conda已经更新到最新版本。你可以通过下面的命令来更新conda:
    ```bash

conda update conda


  2. 然后,尝试使用pip来安装faiss-cpu,而不是使用conda。在你的虚拟环境中运行下面的命令:
```bash

pip install faiss-cpu
  1. 如果上述方法仍然无法解决问题,那么可能是因为你的系统中缺少某些必要的依赖库。你可以尝试安装这些依赖库,然后再安装faiss。对于Ubuntu系统,你可以使用下面的命令来安装这些依赖库:
    ```bash

sudo apt-get install libopenblas-dev mkl-dev python3-dev


然后再次尝试使用pip来安装faiss-cpu。

  4. 最后,如果问题依然存在,那么可能是Python的环境变量设置有问题。你需要检查你的PYTHONPATH环境变量是否包含了faiss的安装路径。你可以通过下面的命令来查看PYTHONPATH:
```bash

echo $PYTHONPATH

如果faiss的安装路径不在PYTHONPATH中,你可以通过下面的命令将其添加进去:


export PYTHONPATH=$PYTHONPATH:/path/to/faiss_directory

注意将"/path/to/faiss_directory"替换为实际的faiss安装路径。

linux下安装Faiss
按照这个版本步骤试试呢
https://blog.51cto.com/u_15790101/5673606

conda 安装,参考官网安装方式:

# CPU-only version
$ conda install -c pytorch faiss-cpu
 
# GPU(+CPU) version
$ conda install -c pytorch faiss-gpu
 
# or for a specific CUDA version
$ conda install -c pytorch faiss-gpu cudatoolkit=10.2 # for CUDA 10.2

回答部分参考、引用ChatGpt以便为您提供更准确的答案:

AKM公司的音频芯片AK4619是一款高性能的音频解码芯片,可用于多种应用场景,包括ARM平台。下面是一些使用AK4619音频芯片的工程建议:

  1. 硬件设计:在设计中,确保正确连接和布局芯片,包括时钟和电源。根据AK4619的数据手册和应用文档,设计适当的电路板布局,包括降噪电路、滤波电路等。确保信号完整性和电源稳定性。
  2. 软件驱动:使用AKM提供的软件驱动程序和开发工具包来支持AK4619。这些驱动程序和工具包通常包括对ARM平台的支持。确保正确配置和初始化AK4619芯片,以及实现所需的音频功能,如采样率、声道数、音频格式等。
  3. 音频处理:根据应用需求,结合AK4619的功能,进行音频处理。这可以包括音频解码、编码、混音、均衡器、音效等功能。使用适当的算法和工具来实现所需的音频处理功能。
  4. 集成测试:在ARM平台上进行全面的集成测试,包括功能验证、性能测试和兼容性测试。确保AK4619与其他系统组件和外设的良好集成,并验证其在不同工作条件下的性能和稳定性。
  5. 优化和调试:在工程中进行优化和调试,以确保AK4619在ARM平台上的最佳性能。这可能涉及功耗优化、延迟优化、音频质量调优等方面的工作。利用AK4619提供的工具和文档进行问题排查和调试。

需要注意的是,具体的工程实施会根据应用需求和平台环境而有所不同。建议参考AK4619的官方文档、数据手册、应用指南以及AKM公司的技术支持资源,以获取更详细的信息和指导。