如何处理Requirements中的非PIP需求。txt

2022-05-15 00:00:00 python spacy

问题描述

所以我最近将我的NLP应用程序移到了一台新机器上。添加了与旧机器相同的python环境,并使用pip安装了所有依赖项。然后出现了一种不是PIP安装的依赖项,也许用"模型"来形容它更合适。安装它的命令是:

python -m spacy.en.download
现在,我想指出的是,在我的存储库中的某个地方,所以如果有一天我或其他人要在另一台PC上安装整个东西,它就在那里,这是根据Python样式指南和约定记录的。

在thisSpacy页面上,它说它可以放在requirements s.txt中。当

pip freeze > requirements.txt

将创建一个文件,该文件不会捕获安装该要求的正确过程。总有一天会有人参选

pip install -r requirements.txt

..并且仍将遇到与我相同的错误

Warning: no model found for 'en'

Only loading the 'en' tokenizer.

有谁知道如何正确地将此要求列在Requirements s.txt中?


解决方案

Spacy的数据包实际上被包装为pip包正是出于这个原因-它们有一个setup.py、一个版本等。只是它们很大,所以不是通过PYPI分发的。不过,您可以在Requirements.txt中指向URL或文件路径:

https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-1.2.0/en_core_web_sm-1.2.0.tar.gz

许多生产用户托管他们自己的PyPI服务器(因此他们不会从互联网上下载任意代码)。如果这样做,您可以通过PyPI仓库分发模型。

相关文章