Mac中升级sqlite3适配Chroma:pysqlite3-binary安装失败求助
解决Chroma要求sqlite3≥3.35.0的版本问题
一、问题根源
你执行pip install pysqlite3-binary失败,是因为这个包的命名已经废弃,现在正确的包名是pysqlite3,旧后缀版本已被移除,所以找不到匹配的安装包。后续代码报错找不到pysqlite3,就是因为包根本没装成功。
二、快速修复(推荐虚拟环境内操作)
- 激活你的Python3.10.8虚拟环境
venv3.10,执行正确的安装命令:
pip install pysqlite3
- 安装完成后,在导入Chroma的代码前加上以下替换逻辑:
__import__('pysqlite3') import sys sys.modules['sqlite3'] = sys.modules.pop('pysqlite3') # 之后再导入Chroma相关模块 # from chromadb import ...
这样Python会优先使用pysqlite3提供的高版本sqlite3,绕过系统自带的旧版本。
三、替换系统级sqlite3(Mac OS X)
Mac系统自带的sqlite3受系统完整性保护(SIP),无法直接替换系统目录文件,建议将新版本放到用户可控目录并修改优先级:
- 解压下载的3.43版本预编译包,得到
sqlite3可执行文件。 - 将文件移动到
/usr/local/bin(没有该目录就先创建:sudo mkdir -p /usr/local/bin):
sudo mv ~/Downloads/sqlite3 /usr/local/bin/
- 修改shell环境变量,让系统优先调用新的sqlite3:
- 打开你的shell配置文件(bash用
~/.bash_profile,zsh用~/.zshrc),添加:export PATH="/usr/local/bin:$PATH" - 执行
source ~/.zshrc(对应你的shell类型)使配置生效。
- 打开你的shell配置文件(bash用
- 重启终端,执行
sqlite3 --version,就能看到3.43版本了。
四、验证生效状态
打开虚拟环境的Python交互模式,执行:
import sqlite3 print(sqlite3.sqlite_version)
如果输出3.43.x,说明替换成功,再运行Chroma代码就不会报错了。
内容的提问来源于stack exchange,提问作者user1314404
相关产品推荐
相关产品推荐

