You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确加载指定路径下载的spaCy预训练管道?附文档查询需求

加载本地预训练spaCy管道的正确方法及文档说明

问题场景

执行以下代码加载本地指定路径的预训练管道时,触发OSError,提示无法读取/tmp/spacy/en_core_web_sm/config.cfg文件:

import spacy
spacy.cli.download("en_core_web_sm", False, False, "--target", "/tmp/spacy")
nlp = spacy.load("/tmp/spacy/en_core_web_sm")

直接使用带版本号的路径(如/tmp/spacy/en_core_web_sm/en_core_web_sm-3.5.0/)可成功加载,但该方法依赖具体版本号,不具备通用性。
环境:Python 3.9.13,spaCy 3.5.0

正确解决方法

方法1:通过环境变量指定模型搜索路径

spacy.cli.download配合--target参数时,模型会被下载到目标目录/模型名/模型名-版本号的嵌套结构中。此时可以通过设置环境变量让spaCy自动识别模型:

import os
import spacy

# 将模型所在的父目录设为spaCy的模型搜索路径
os.environ["SPACY_MODEL_PATH"] = "/tmp/spacy"
# 直接使用模型名称加载,spaCy会自动在指定路径下匹配对应版本
nlp = spacy.load("en_core_web_sm")

方法2:下载时直接解压到目标根目录

在下载命令中添加--unpack参数,模型文件会直接解压到目标目录的根层级,无需嵌套版本子目录:

import spacy
# 添加--unpack参数,将模型文件直接释放到/tmp/spacy下
spacy.cli.download("en_core_web_sm", False, False, "--target", "/tmp/spacy", "--unpack")
# 直接加载目标目录即可
nlp = spacy.load("/tmp/spacy")

官方文档说明位置

在spaCy官方文档的「使用预训练模型」章节下的「从本地目录加载模型」部分,明确说明了以下内容:

  • 模型加载的目录结构要求(核心文件如config.cfg需在加载路径的根目录)
  • 通过SPACY_MODEL_PATH环境变量自定义模型搜索路径的用法
  • 使用--unpack参数调整下载后模型目录结构的方法

内容的提问来源于stack exchange,提问作者mon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:45:09