2 回答
TA贡献1772条经验 获得超6个赞
如果您想让您的用户免于运行该下载,则必须使用您自己的源打包和分发它。这个过程称为供应商(请参阅这篇很棒的帖子以深入解释如何在 python 中最好地做到这一点,或 pip-project 的_vendor/__init__.py评论示例),它可能非常方便,但容易让你烦恼如果过度,问题。
_vendor简单地说,您在包的源代码目录中创建一个名为(或类似的)的附加 python 包,并将下载的de_core_news_sm包复制到其中:
example_pkg
├── import_model.py
├── __init__.py
└── _vendor
├── __init__.py
└── de_core_news_sm
├── de_core_news_sm-2.1.0
│ ├── accuracy.json
│ ├── meta.json
│ ├── ner/
│ ├── parser/
│ ├── tagger/
│ ├── vocab/
│ └── tokenizer
├── __init__.py
└── meta.json
site_packages您可以在安装它的 python 解释器中找到该包python -m spacy download de_core_news_sm,即$(which python)/site_packages/de_core_news_sm.
最后,您需要将模型的所有导入从 更改import de_core_news_sm为from example_pkg._vendor import de_core_news_sm,然后它应该可以工作。
添加回答
举报