Package spacy model(包装空间模型)
问题描述
我要将Spacy模型de_core_News_sm包含在一个python包中。
这是我的项目: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
推荐答案
如果您不想让您的用户运行该下载,您必须将其打包并与您自己的源代码一起分发。这个过程被称为供应商管理(请参阅this great post以获得有关如何最好地使用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
您可以在您使用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,然后它应该可以工作。
这篇关于包装空间模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:包装空间模型
基础教程推荐
- Discord.py 缺少必需的参数 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
