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

部署Django项目遇Spacy模型加载错误:找不到en_core_web_sm

解决Vercel部署Django时spacy模型找不到的问题

问题根源

spacy核心包(如spacy==3.1.3)并不附带语言模型,en_core_web_sm是独立的模型包。本地运行正常是因为你之前通过python -m spacy download en_core_web_sm安装过该模型,但部署到Vercel时,requirements.txt未指定安装这个模型,导致环境中缺失文件。

解决步骤

1. 修正requirements.txt,添加匹配版本的模型包

模型版本必须和spacy版本对应(spacy3.1.x对应模型3.1.x),且PyPI上的模型包名是en-core-web-sm(连字符格式),不是代码里的下划线格式。修改后的requirements.txt如下:

asgiref==3.4.1
Django==3.2.8
python-dateutil==2.8.2
six==1.16.0
sqlparse==0.4.2
tzdata==2021.5
gunicorn==20.1.0
spacy==3.1.3
en-core-web-sm==3.1.0

2. 若直接安装模型包报错,用自定义构建脚本

如果Vercel执行requirements.txt时安装模型失败,可在项目根目录创建vercel-build.sh脚本:

#!/bin/bash
pip install -r requirements.txt
python -m spacy download en_core_web_sm
python manage.py collectstatic --noinput

再在vercel.json中指定构建命令:

{
  "buildCommand": "./vercel-build.sh"
}

这样会先安装依赖,再下载模型,最后完成静态文件收集。

3. 确认代码加载逻辑

你的模型加载代码无需修改:

import spacy
nlp = spacy.load("en_core_web_sm")

只要模型安装成功,该写法就能正确找到模型文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:05:05