2017-05-31 4 views
0

So habe ich vor kurzem meine NLP-Anwendung auf eine neue Maschine verschoben. Hinzugefügt die gleiche Python-Umgebung mit Pyenv wie die alte Maschine und installiert mit Pip alle Abhängigkeiten. Dann gab es eine "Abhängigkeit" von Arten, die nicht von Pip installiert wurde, vielleicht ist "Modell" ein besseres Wort dafür. Der Befehl, der es installiert ist:was zu tun mit Nicht-Pip-Anforderung in requirements.txt

python -m spacy.en.download 

Nun, ich bin zu wollen, dass es irgendwo in meinem Repository zu beachten, so dass, wenn ich einen Tages oder sonst jemand geht auf einem anderen PC die ganze Sache zu installieren, es ist da, bemerkte nach mit Python Style Guides und Konventionen.

Auf this SpaCy-Seite heißt es, dass es in requirements.txt gehen kann. Während

pip freeze > requirements.txt 

eine Datei erstellen, wird dies die richtige Vorgehensweise nicht erfassen, diese Anforderung zu installieren. Ein Tag wird jemand

pip install -r requirements.txt 

..und läuft nach wie vor in den gleichen Fehler läuft, wie ich

tat
Warning: no model found for 'en' 

Only loading the 'en' tokenizer. 

Wer weiß, wie richtig in requirements.txt diese Anforderung zur Liste?

Antwort

1

Die Datenpakete von spaCy sind genau aus diesem Grund als pip Pakete verpackt - sie haben eine setup.py, eine Version, etc. Es ist nur, dass sie groß sind und nicht über PyPi verteilt werden. Sie können auf eine URL verweisen oder eine Datei-Pfad in Ihrem requirements.txt, aber:

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

Viele Produktions den Rechner ihre eigenen PyPI Server (so dass sie nicht willkürlich Code aus dem Internet herunterzuladen) . Sie können die Modelle über ein PyPi-Warehouse verteilen, wenn Sie das tun.

+0

Dank Ich wollte nur die Regeln einhalten, da diese Sache bald in ein Blog gehen könnte oder irgendwo die Leute es sehen werden und immer noch lernen über die Anforderungen.txt, setup.py. PyPi Warehouse ist ein neues, hatte nicht davon gehört .. – cardamom