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

部署Flask NLP应用至GCP/AWS时遇en-core-web-sm==3.5.0安装错误

解决部署时找不到en-core-web-sm==3.5.0的问题

问题出在这:en-core-web-sm这类spaCy模型的PyPI包名其实是en_core_web_sm(用下划线代替连字符),而且直接在requirements.txt里写版本号,部分部署环境没法识别spaCy模型的特殊安装逻辑,所以才会报找不到版本的错误。

给你几个可行的解决办法:

办法1:修改requirements.txt的写法

把requirements.txt里的en-core-web-sm==3.5.0换成下面任意一种格式:

  • 直接用PyPI上的正确包名:
    en_core_web_sm==3.5.0
    
  • 或者指定模型的官方下载链接,确保环境能直接拉取:
    https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.5.0/en_core_web_sm-3.5.0.tar.gz#egg=en_core_web_sm==3.5.0
    

办法2:在部署流程里加模型安装命令

如果改requirements.txt还是不行,就在部署的启动脚本或者构建步骤里手动加安装命令:

python -m spacy download en_core_web_sm==3.5.0

比如在Google Cloud App Engine的app.yaml里,可以这么写启动命令:

entrypoint: "pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.5.0/en_core_web_sm-3.5.0.tar.gz && gunicorn main:app"

AWS EC2的话,就在部署脚本里先执行上面的pip安装命令,再启动Flask应用。

办法3:把模型直接打包到项目里

要是上面俩办法都不好使,就把本地已经装好的模型直接复制到项目里,代码里改加载路径就行:

  1. 本地找到en_core_web_sm的安装目录,Windows一般在Lib\site-packages\en_core_web_sm,Linux/macOS在lib/python3.9/site-packages/en_core_web_sm
  2. 把整个en_core_web_sm文件夹复制到你的项目根目录
  3. Flask代码里修改模型加载的代码:
    import spacy
    nlp = spacy.load("./en_core_web_sm")
    

这样部署的时候就不用再装模型,直接读本地文件就行。

最后先在本地测试修改后的配置或代码,确保能正常跑,再重新执行部署命令就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:27:24