使用Chromadb与Langchain触发sqlite3版本错误,但本地版本已达标求助
解决Chroma提示sqlite3版本过低但系统已安装高版本的问题
问题核心:你系统安装的sqlite3是达标版本,但Python环境自带的sqlite3模块版本不满足Chroma要求,两者不是同一个东西。
先确认Python环境的sqlite3版本
运行以下代码查看当前Python用的sqlite3版本:
import sqlite3 print(sqlite3.sqlite_version)
如果输出低于3.35.0,就按下面的方法解决。
解决方法
方法一:conda环境用户
直接在conda环境里更新sqlite:
conda install -c conda-forge sqlite
更新完成后重启Python环境,再运行你的代码。
方法二:pip环境用户
安装pysqlite3-binary替代Python自带的sqlite3:
pip install pysqlite3-binary
然后修改你的代码,在导入Chroma之前先替换sqlite3模块:
__import__('pysqlite3') import sys sys.modules['sqlite3'] = sys.modules.pop('pysqlite3') # 后续原代码不变 from langchain.vectorstores import Chroma from chromadb.utils import embedding_functions embedding = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
方法三:自定义编译Python(进阶)
如果是自己编译的Python,可以重新编译时指定链接系统的高版本sqlite3,编译时添加参数:
./configure --enable-loadable-sqlite-extensions --with-sqlite=/usr/local/sqlite3
(路径根据你系统sqlite3的实际安装位置调整),这个方法适合有编译经验的用户,优先推荐前两种方法。
内容的提问来源于stack exchange,提问作者Sanjay
相关产品推荐
相关产品推荐

