【问题标题】:How to place Spacy en_core_web_md model in Python package [duplicate]如何在 Python 包中放置 Spacy en_core_web_md 模型 [重复]
【发布时间】:2020-10-24 23:19:23
【问题描述】:

我正在构建一个 python 包,我正在使用 Spacy 库和 Spacy 模型 en_core_web_md。它不能使用 pip 安装。可以这样安装

python -m spacy download en_core_web_md

我在 Python 包中放置了 en_core_web_md 文件夹。

  • simple_eda

    • init.py
    • simple_eda.py
    • en_core_web_md
  • 测试

  • setup.py

  • README.md

  • 许可证

我可以成功安装包,但是当我导入时,它给了我这个错误。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shahid/anaconda3/envs/eda_test_6/lib/python3.5/site-packages/simple_nlp/__init__.py", line 1, in <module>
    from simple_nlp.simple_nlp import SimpleNLP
  File "/home/shahid/anaconda3/envs/eda_test_6/lib/python3.5/site-packages/simple_nlp/simple_nlp.py", line 22, in <module>
    nlp = spacy.load("en_core_web_md")
  File "/home/shahid/anaconda3/envs/eda_test_6/lib/python3.5/site-packages/spacy/__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "/home/shahid/anaconda3/envs/eda_test_6/lib/python3.5/site-packages/spacy/util.py", line 175, in load_model
    raise IOError(Errors.E050.format(name=name))
OSError: [E050] Can't find model 'en_core_web_md'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

我应该将文件夹放在哪里,还是应该在 setup.py 文件中添加指向该文件夹的链接?

【问题讨论】:

  • 你是怎么导入的?试试这个,看看它是否有效? 'Import spacy Nlp= spacy.laod('en_core_web_md')' 我也遇到了与 en_core_web_sm 相同的错误,我使用直接链接和 pip 来解决它,并且它可以使用以下命令:'pip install github.com/explosion/spacy-models/releases/download/…'。此链接中也有 en-core-web-md 所以我认为尝试手动下载并使用 pip 安装它会有所帮助
  • 如何打包en_core_web_md?你的setup.py 里有什么?
  • @phd 如您所见,我的 simple_nlp 文件夹中有地方 en_core_web_md 文件夹。我像 nlp = spacy.load("en_core_web_md") 一样导入它。 A.mh 这也回答了你的问题。 taha我想在Pypi上发布我的包,所以解决方案不可靠。
  • @taha 请查看我上面的评论
  • @A.mh 你也请。

标签: python pip spacy pypi python-packaging


【解决方案1】:

这解决了我的问题。

try:
    nlp = spacy.load('en')
except OSError:
    print('Downloading language model for the spaCy POS tagger\n'
        "(don't worry, this will only happen once)", file=stderr)
    from spacy.cli import download
    download('en')
    nlp = spacy.load('en')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2020-12-19
    • 2019-09-23
    相关资源
    最近更新 更多