gpt4 book ai didi

python - 包空间模型

转载 作者:行者123 更新时间:2023-12-01 00:35:50 28 4
gpt4 key购买 nike

我想将 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项目的_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 - 包空间模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57773454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com