SpaCyOSError:[E050]在Heroku平台上找不到模型'en'

时间:2019-01-16 10:15:05

标签: python heroku spacy

我正在尝试将rasa bot部署到heroku,并且正在使用python。

我的requirements.txt文件是这样的:

  

spacy == 2.0.18
  https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.0.0/en_core_web_md-2.0.0.tar.gz#egg=en_core_web_md==2.0.0

部署成功,但是当我尝试运行这样的作业时:

  

web:python -m spacy下载en_core_web_md && python my_code.py

  

web:python -m spacy下载zh && python my_code.py

然后我收到此错误:

  

文件“ /app/.heroku/python/lib/python3.6/site-packages/spacy/util.py”,行119,位于load_model中   引发IOError(Errors.E050.format(name = name))   OSError:[E050]找不到型号'en'。它似乎不是快捷方式链接,Python包或数据目录的有效路径。

我该怎么办?

此致

zekeriya

1 个答案:

答案 0 :(得分:0)

起初我遇到了同样的问题,但是我终于能够将其部署到Heroku中。

您无需执行“ spacy download ...”,只需在Procfile中执行以下操作即可;

web: python my_code.py

您的Requirements.txt中还应该包含以下内容;

spacy==2.0.18
https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.0.0/en_core_web_md-2.0.0.tar.gz#egg=en_core_web_md==2.0.0

我也有一个runtime.txt文件来指定python版本,像这样;

python-3.7.2

但是我认为最重要的部分实际上是您访问spacy api的部分,

import spacy
import en_core_web_md
nlp = en_core_web_md.load()