为了账号安全,请及时绑定邮箱和手机立即绑定

包装空间模型

包装空间模型

有只小跳蛙 2022-05-19 15:31:54
我想将 spacy 模型 de_core_news_sm 包含在 python 包中。这是我的项目:https ://github.com/michaelhochleitner/package_de_core_news_sm 。我使用以下命令打包并安装项目。python setup.py sdist bdist_wheelpip install dist/example-pkg-mh-0.0.1.tar.gz我想导入模块 example_pkg.import-model.py 。$ python>>> import example_pkg.import_modelTraceback (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_smModuleNotFoundError: No module named 'de_core_news_sm'如何将模块“de_core_news_sm”包含到包中,以便在运行以下命令后安装它?pip install dist/example-pkg-mh-0.0.1.tar.gz
查看完整描述

2 回答

?
梦里花落0921

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


查看完整回答
反对 回复 2022-05-19
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您是否在命令行上尝试过:

python -m spacy download de_core_news_sm


查看完整回答
反对 回复 2022-05-19
  • 2 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信