包装空间模型

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,然后它应该可以工作。

这篇关于包装空间模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)