Streamlit Cloud部署spaCy应用遇OSError[E053]问题求助
问题原因与解决方法
问题根源
你安装的en_core_web_sm-2.2.0是适配spaCy 2.x版本的模型,而你的项目依赖的是spaCy==3.3.1(3.x系列)。spaCy 3.x对模型的结构和配置文件做了调整,2.x版本的模型没有3.x所需的config.cfg文件,因此加载时触发OSError: [E053]错误。
解决步骤
- 替换requirements.txt中的模型依赖:将原有的模型安装链接替换为适配spaCy 3.3.1的版本,推荐使用与spaCy主版本一致的模型(即3.3.x系列)。修改后的requirements.txt内容如下:
spaCy==3.3.1 en_core_web_sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.3.0/en_core_web_sm-3.3.0.tar.gz - 可选:通过代码自动安装模型:如果不想手动指定链接,也可以在应用的启动代码中添加模型下载逻辑(需确保仅执行一次):
import spacy try: nlp = spacy.load("en_core_web_sm") except OSError: spacy.cli.download("en_core_web_sm") nlp = spacy.load("en_core_web_sm")
修改完成后重新部署Streamlit应用,即可正常加载模型。
内容的提问来源于stack exchange,提问作者Ignatius Ezeani
相关产品推荐
相关产品推荐

