包 spacy 模型
Package spacy model
我想在 python 包中包含 spacy 模型 de_core_news_sm。
这是我的项目:https://github.com/michaelhochleitner/package_de_core_news_sm .
我用以下命令打包安装工程
python setup.py sdist bdist_wheel
pip install dist/example-pkg-mh-0.0.1.tar.gz
我想导入模块 example_pkg.import-model.py .
$ python
>>> import example_pkg.import_model
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mh/PycharmProjects/packaging_tutorial/example_pkg/import_model.py", line 2, in <module>
import de_core_news_sm
ModuleNotFoundError: No module named 'de_core_news_sm'
如何将模块 'de_core_news_sm' 包含到包中,以便在 运行 以下命令之后安装它?
pip install dist/example-pkg-mh-0.0.1.tar.gz
你试过命令行吗:
python -m spacy download de_core_news_sm
如果您想让您的用户免于 运行 该下载,您必须将其打包并使用您自己的源分发。这个过程称为供应商(参见 for an in-depth explanation of how to best do it in python, or the pip-project's _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
您可以在使用 python -m spacy download de_core_news_sm
安装它的 python 解释器的 site_packages
中找到该软件包,即 $(which python)/site_packages/de_core_news_sm
.
最后,您需要将模型的所有导入从 import de_core_news_sm
更改为 from example_pkg._vendor import de_core_news_sm
,然后它应该可以工作了。
我想在 python 包中包含 spacy 模型 de_core_news_sm。
这是我的项目:https://github.com/michaelhochleitner/package_de_core_news_sm .
我用以下命令打包安装工程
python setup.py sdist bdist_wheel
pip install dist/example-pkg-mh-0.0.1.tar.gz
我想导入模块 example_pkg.import-model.py .
$ python
>>> import example_pkg.import_model
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mh/PycharmProjects/packaging_tutorial/example_pkg/import_model.py", line 2, in <module>
import de_core_news_sm
ModuleNotFoundError: No module named 'de_core_news_sm'
如何将模块 'de_core_news_sm' 包含到包中,以便在 运行 以下命令之后安装它?
pip install dist/example-pkg-mh-0.0.1.tar.gz
你试过命令行吗:
python -m spacy download de_core_news_sm
如果您想让您的用户免于 运行 该下载,您必须将其打包并使用您自己的源分发。这个过程称为供应商(参见 _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
您可以在使用 python -m spacy download de_core_news_sm
安装它的 python 解释器的 site_packages
中找到该软件包,即 $(which python)/site_packages/de_core_news_sm
.
最后,您需要将模型的所有导入从 import de_core_news_sm
更改为 from example_pkg._vendor import de_core_news_sm
,然后它应该可以工作了。