如何将Spacy模型添加到requirements.txt文件?

时间:2020-05-09 19:15:59

标签: python git heroku spacy

我有一个使用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模型?或其他可能的修复方法?

谢谢。

3 个答案:

答案 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