【问题标题】:Error in Installing spacy en_core_web_lg on Heroku app在 Heroku 应用上安装 spacy en_core_web_lg 时出错
【发布时间】:2021-04-09 10:48:48
【问题描述】:

我正在使用 Django 在 Heroku 上部署我的机器学习模型,我的应用程序需要 en_core_web_lg,但无法安装它

我的 requirements.txt 是这样的:

..
..
djangorestframework==3.12.2
en-core-web-lg==2.3.1
en-core-web-sm==2.3.1
gunicorn==20.0.4
heroku==0.1.4
..

错误是:

 ERROR: Could not find a version that satisfies the requirement en-core-web-lg==2.3.1 (from -r /tmp/build_c3075f3c_/requirements.txt (line 14)) (from versions: none)
       ERROR: No matching distribution found for en-core-web-lg==2.3.1 (from -r /tmp/build_c3075f3c_/requirements.txt (line 14))
 !     Push rejected, failed to compile Python app.
 !     Push failed

【问题讨论】:

  • 你检查日志了吗?
  • 您的测功机中可能没有足够的空间。看看这个——heroku 不用于计算,它主要用于简单的网站。我知道模型本身很小(大约 350MB),但是看看你的其他部门是否已经占用了太多空间 - 免费/爱好/标准只有 512MB,所以你只剩下 162 MB - 你的其他部门适合这里吗?
  • 是的!我从一个 SO 帖子中获得了这个链接,但它也不起作用。我只需要安装它的方法,以便我可以加载它。
  • 它是否安装在您的本地计算机上?
  • 没有内存溢出消息。

标签: python django heroku spacy


【解决方案1】:

我不知道为什么它没有直接从requirements.txt 文件安装。 但是还有另一种方法,但这是不对的,但工作将继续进行。 首先,您必须从出现错误的requirements.txt 文件中删除包。 然后将应用程序推送到Heroku,一旦您的应用程序到达Heroku,然后从terminalHerokudashboard 编写此代码。

如果您使用的是terminal,则:

heroku run bash

比跑

pip install spacy

然后从 spacy 安装你想要的要求

python -m spacy download en_core_web_lg

如果您使用的是Heroku dashboard,则: 首先去你的Heroku dashboard点击你的应用,然后在右上角点击More并选择Run Console 示例图像 比这个界面会出现 在此您必须单击bash 或输入bash 并运行 在此之后,您可以放置​​相同的 cammand 并安装。 我希望你能以这种方式解决你的问题。 (:

【讨论】:

  • 感谢您的宝贵时间,它适用于 'en_core_web_sm' 但不适用于 'lg' 可能是因为它的大小。
【解决方案2】:

您的错误是因为没有名为 en-core-web-lg 的 pip 库。请记住,您不能将en-core-web-lg 放入requirements.txt,因为它不是您可以使用pip 安装的库。它们是 spacy 使用的模型。

接受的答案很好。但是,如果你想要一个完整的自动部署,你也可以在你的代码中添加这样的东西:

    try:
        nlp = spacy.load("en_core_web_md")
    except: # If not present, we download
        spacy.cli.download("en_core_web_md")
        nlp = spacy.load("en_core_web_md")

如果模型不存在,这将自动下载模型。而且,它不需要您使用 Heroku 终端。只有requirements.txt 文件中的spacy 是必需的。

最后,请记住,spacy 模型加载到内存 (RAM) 中。 lg 型号(约 700MB)太大而无法安装在免费、爱好或标准 1X 测功机(512MB 内存)中。因此它将无法加载,并且测功机将被 R15 (https://devcenter.heroku.com/articles/error-codes#r15-memory-quota-vastly-exceeded) 杀死。

有关 dynos 的更多信息:https://www.heroku.com/dynos

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2012-12-19
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多