sciSpacy与spaCy版本兼容问题求助:加载en_core_sci_sm失败
解决sciSpacy 0.5.1 + spaCy 3.4.4加载模型时的RegistryError问题
问题核心原因
你遇到的spacy.Tagger.v2找不到的错误,本质是sciSpacy模型版本与安装的spaCy 3.4.4不兼容:
- sciSpacy 0.5.1要求spaCy版本在
>=3.4.4,<3.5区间 - 若你安装的
en_core_sci_sm是适配spaCy 3.5+的新版本,该模型的配置文件中会引用spaCy 3.5才引入的spacy.Tagger.v2架构,但spaCy 3.4.4的注册表中只有spacy.Tagger.v1,因此触发找不到函数的错误。
解决方案
1. 卸载不匹配的模型
执行命令卸载当前的en_core_sci_sm:
pip uninstall en_core_sci_sm -y
2. 安装与sciSpacy 0.5.1匹配的模型版本
安装同版本号的模型,确保和sciSpacy、spaCy版本对齐:
pip install en_core_sci_sm==0.5.1
或者使用sciSpacy官方的直接下载命令更稳妥:
python -m spacy download en_core_sci_sm-0.5.1 --direct
3. 验证修复效果
重新运行加载代码:
import spacy nlp = spacy.load("en_core_sci_sm")
4. 彻底重建环境(若上述步骤无效)
如果之前的环境残留了不兼容的包,直接重建conda环境:
# 创建新虚拟环境,Python版本建议3.8-3.10 conda create -n scispacy_env python=3.9 -y conda activate scispacy_env # 安装指定版本的sciSpacy和对应模型 pip install scispacy==0.5.1 pip install en_core_sci_sm==0.5.1
内容的提问来源于stack exchange,提问作者Boyd1878
相关产品推荐
相关产品推荐

