如何处理Requirements中的非PIP需求。txt
问题描述
所以我最近将我的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仓库分发模型。
相关文章