当我执行一个脚本时,报错:
import faiss
ModuleNotFoundError: No module named 'faiss'
遂:pip install faiss autofaiss -i https://pypi.tuna.tsinghua.edu.cn/simple
再次执行脚本,报错:
import faiss
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/faiss/__init__.py", line 19, in <module>
from .swigfaiss import *
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/faiss/swigfaiss.py", line 98, in <module>
class FloatVector(_object):
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/faiss/swigfaiss.py", line 132, in FloatVector
__swig_destroy__ = _swigfaiss.delete_FloatVector
AttributeError: module 'faiss._swigfaiss' has no attribute 'delete_FloatVector'
???
检查后发现:
pip list | grep faiss
autofaiss 2.12.0
faiss 1.5.3
faiss-cpu 1.7.2
此时想到了 和另一个可用的conda环境对比一下:
pip list | grep fais
autofaiss 2.10.2
faiss-cpu 1.7.2
遂执行:
- pip uninstall faiss autofaiss
- pip list | grep fais
- faiss-cpu 1.7.2
- pip install autofaiss==2.10.2
此时:
pip list | grep fais
autofaiss 2.10.2
faiss-cpu 1.7.2
再次执行脚本,报错:
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/autofaiss/__init__.py", line 3, in <module>
from autofaiss.external.quantize import build_index, score_index, tune_index
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/autofaiss/external/quantize.py", line 17, in <module>
from autofaiss.external.build import (
File "/Users/sunzhuo02/anaconda3/envs/torch_py37/lib/python3.7/site-packages/autofaiss/external/build.py", line 8, in <module>
from faiss import extract_index_ivf
ImportError: cannot import name 'extract_index_ivf' from 'faiss' (unknown location)
啊噗,好歹错误是变了。。。
怀疑是前后安装顺序问题
与是:
- pip uninstall faiss-cpu
- pip install faiss-cpu
再次执行脚本,,执行成功。。
博客讲述了在Python环境中遇到Faiss模块导入错误的过程。首先尝试安装faiss,但出现AttributeError。通过查看已安装的包,发现在不同的conda环境中faiss版本不一致。然后尝试卸载并重新安装不同版本的faiss和autofaiss,最终通过卸载faiss-cpu并重新安装解决了问题,使得脚本能够成功执行。

2249

被折叠的 条评论
为什么被折叠?



