所以我最近将我的NLP应用程序移到了一台新机器上 . 使用pyenv添加了与旧机器相同的python环境,并使用pip安装了所有依赖项 . 然后有一个'依赖'的种类没有由pip安装,也许'模型'是一个更好的词 . 安装它的命令是:
python -m spacy.en.download
现在,我想要注意我的存储库中的某个地方,所以如果有一天我或其他人将整个东西安装在另一台PC上,那么根据Python样式指南和惯例注明 .
在this spaCy页面上,它说它可以进入requirements.txt . 而
pip freeze > requirements.txt
将创建一个文件,这将无法捕获安装该要求的正确过程 . 有一天会有人跑
pip install -r requirements.txt
..并且仍会遇到与我相同的错误
Warning: no model found for 'en'
Only loading the 'en' tokenizer.
有谁知道如何在requirements.txt中正确列出此要求?
1 回答
spaCy的数据包实际上被包装为
pip
包,正是出于这个原因---它们有一个setup.py
,一个版本等 . 它's just that they'很大,所以不通过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仓库分发模型 .