我有一个使用Spacy模型“ en_core_web_sm”的应用。我已经在本地计算机上测试了该应用程序,并且运行正常。
但是,当我将其部署到Heroku时,会出现此错误:
“找不到模型'en_core_web_sm'。它似乎不是快捷方式链接,Python软件包或数据目录的有效路径。”
我的需求文件包含spacy == 2.2.4。
我一直在研究此错误,发现需要使用以下命令单独下载模型:
python -m spacy download en_core_web_sm
我一直在寻找将相同内容添加到我的requirements.txt文件中的方法,但一直找不到能起作用的方法!
我也尝试过-将以下内容添加到需求文件中:
-e git://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz#egg=en_core_web_sm==2.2.0
但是它给出了这个错误:
“将git://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz克隆到/app/.heroku/src/en-core -web-sm
运行命令git clone -q git://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz /app/.heroku/src/核心网络短信 致命:远程错误: 爆炸/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz不是有效的存储库名称。
是否有一种方法可以从需求文件中加载此Spacy模型?或其他可能的修复方法?
谢谢。
答案 0 :(得分:6)
如果使用docker在Dockerfile中添加,请在部署步骤中添加它
pip3 install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.5/en_core_web_sm-2.2.5.tar.gz --user
编辑
添加
spacy>=2.2.0,<3.0.0
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz#egg=en_core_web_sm
在requirements.txt
Spacy Doc
请参阅Downloading and requiring model dependencies
部分
有关如何添加 github-source see this并遵循 YPCrumble 答案
的更多详细信息答案 1 :(得分:3)
好吧,所以经过更多谷歌搜索并寻求解决方案后,我发现此解决方案有效:
我从@tausif在他的答案中共享的URL中下载了压缩包,到我的本地系统。
将其保存在具有我的requirements.txt文件的目录中。
然后我将此行添加到我的requirements.txt文件中:./en_core_web_sm-2.2.5.tar.gz
继续部署到Heroku-成功,并且该应用程序现在可以完美运行。
答案 2 :(得分:0)
对于 en-core-web-sm == 3.0.0,这对我有用。
将行 "en-core-web-sm==3.0.0"
替换为
en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0-py3-none-any.whl