如何将Spacy en_core_web_md模型放入Python包中

sha*_*dam 7 python pip pypi spacy python-packaging

我正在构建一个 python 包,并且正在使用 Spacy 库和 Spacy 模型 en_core_web_md。无法使用 pip 安装。你可以这样安装

python -m spacy download en_core_web_md
Run Code Online (Sandbox Code Playgroud)

我已将 en_core_web_md 文件夹放入我的 Python 包中。

  • 简单的EDA

    • 初始化.py
    • simple_eda.py
    • en_core_web_md
  • 测试

  • 安装程序.py

  • 自述文件.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.
Run Code Online (Sandbox Code Playgroud)

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

sha*_*dam 16

这解决了我的问题。

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')
Run Code Online (Sandbox Code Playgroud)