[PYTHON] Wechseln Sie das zu installierende Paket für jede Umgebung mit Gedichten

Beachten Sie, dass ich die Python-Umgebung mit Poetry verwalte und verschiedene Pakete für den Lernserver und den Inferenzserver bereitstellen möchte.

Hintergrund

Grundsätzlich dachte ich, es wäre gut, alles in Abhängigkeiten zu setzen, aber es scheint, dass es leistungsstarke und bösartige Pakete auf der Welt gibt, die allein durch die Installation mehrere GB Speicher benötigen, sodass selbst eine schlechte Infrastruktur sie installieren kann. Hey ... das wurde ein Problem.

Es klingt vernünftig, Ihre Infrastruktur (vorübergehend) zu stärken. Sind Sie jedoch zuversichtlich, dass Sie die Größe Ihrer Instanz nach Abschluss der Installation in den nächsten Monaten oder Jahren definitiv ändern werden? Ich nicht. Also habe ich es mir ausgedacht.

Hauptthema

Poesie hat das Konzept von "optional" und "Extras". Optionen für die Unterbefehle "Hinzufügen" bzw. "Installieren".

Abschließend haben die folgenden Schritte funktioniert:

1. Beim Hinzufügen eines abhängigen Pakets

$ poetry add --optional SOME_STRONG_PACKAGE

2. Fügen Sie mit einem beliebigen Editor ein Extras-Paket zu pyproject.toml hinzu

$ vi pyproject.toml

#↓ Hinzufügen
[tool.poetry.extras]
train = ["torch", "torchtext"]
↑ Gruppenname ↑ Liste der zu installierenden Pakete (stellen Sie sicher, dass dies in Abhängigkeiten optional ist)

3. Installation (wenn keine Extras benötigt werden)

$ poetry install

3'.Installation (falls Extras erforderlich)

$ poetry install -E train

Wo es stecken bleibt

Wenn ich die obige Methode für ein Projekt versuche, das bereits von Poetry verwaltet wird, wird folgende Fehlermeldung angezeigt:

[ValueError]        
Extra [train] is not specified.  

Danach habe ich poetry.lock gelöscht und die oben genannte Poetry Install -E Train erneut versucht und es hat funktioniert. Offensichtlich ist die Fehlermeldung eine unfreundliche </ s> PR-Chance.

Recommended Posts

Wechseln Sie das zu installierende Paket für jede Umgebung mit Gedichten
Wechseln Sie das zu ladende Modul für jede Ausführungsumgebung in Python
So legen Sie die Entwicklungsumgebung für jedes Projekt mit VSCode + Python-Erweiterung + Miniconda fest
Verschieben Sie das, was Sie mit pip installiert haben, in die Conda-Umgebung
Erstellen Sie mit boot2docker eine Ausführungsumgebung für jede Sprache
So bereiten Sie mit pyenv-virtualenv unter Amazon Linux eine Umgebung mit unterschiedlichen Python-Versionen und -Paketen für jedes Projekt vor
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
[Für Anfänger] Installieren Sie das Paket in der Anaconda-Umgebung (Janome)
Ändern Sie den Einstellungswert von settings.py entsprechend der Entwicklungsumgebung
Vereinheitlichen Sie die Umgebung des Python-Entwicklungsteams, beginnend mit Poetry
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Was tun, wenn die Paketabhängigkeit nicht repariert werden kann?
Sie können das mit pip install --user installierte Paket nicht finden?
Holen Sie sich die Paketversion, um sich bei PyPI von Git zu registrieren
Vom Umgebungsaufbau bis zum Einsatz für Kolben + Heroku mit Docker
Ich möchte das Paket aus den Anforderungen.txt mit Poesie installieren
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Schalten Sie PYTHONPATH für jede virtuelle Umgebung um
Schalten Sie Python mit Alternativen auf 2.7 um
Wechseln Sie die virtuelle Umgebung mit Jupiter
[Für IT-Anfänger] Was tun, wenn der Befehl rev nicht mit Git Bash verwendet werden kann?
Machen Sie sich mit der Pipeline von spaCy vertraut (wollen Sie es sein)
django kann nicht in der Entwicklungsumgebung von pipenv + pyenv installiert werden
Erstellen Sie mit der AWS-API einen Alias für Route53 zu CloudFront
Aufbau einer Python-Umgebung für diejenigen, die Datenwissenschaftler 2016 werden möchten
Ich habe eine Entwicklungsumgebung für Django 3.0 mit Docker, Docker-Compose und Poetry erstellt
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Jupyter Notebook 6.0.2 kann nicht in der in Anaconda erstellten Python 2.7-Umgebung installiert werden
Lösung für das Problem, dass Strg + z in Powershell in Docker für Windows nicht verwendet werden kann (vorläufig)
Ein Memo beim Erstellen einer Umgebung, die vorerst mit Lambda @ Edge debuggt werden kann
Nachdem ich angefangen hatte, versuchte ich, die Bereitstellungsabteilung von httpd conf für jede Umgebung mit ansible lokal auszuführen
Gründe, warum die Tool- / Umgebungsküche den Haupt-PC von Linux auf Windows + WSL2 und Arbeitsnotizen geändert hat
TensorFlow 2.2 kann nicht mit Python 3.8 installiert werden!
Bereiten Sie die Entwicklungsumgebung mit anyenv vor
Bereiten Sie die Umgebung für Atom für Pythonista vor
Starten Sie das neueste Odo mit 2 Befehlen mit Docker Desktop für Windows
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
So wechseln Sie einfach die von Conda auf Jupyter erstellte virtuelle Umgebung
Pakete, die in einer virtuellen Umgebung mit Anaconda unter Windows 10 installiert wurden, können nicht importiert werden
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Erzeugt halbautomatisch eine Beschreibung des Pakets, das in PyPI registriert werden soll
AtCoder-Autor Ich habe ein Skript geschrieben, das Wettbewerbe für jeden Autor zusammenfasst
Suchen Sie mit tweepy nach Twitter-Keywords und schreiben Sie die Ergebnisse in Excel
Mit ReportingAPI + Cloud-Funktionen können Sie die Anzahl der Besuche auf jeder Seite ermitteln
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Ich habe die Bibliothek mit Visual Studio Code installiert, konnte sie jedoch nicht importieren
Annäherungserklärung für Anfänger, um in Kaggle Titanic_1 unter den besten 1,5% (0,83732) zu sein
Es wurde ein Fehler behoben, bei dem node.surface mit python3 + mecab nicht abgerufen werden konnte
Ein Leitfaden für IoT mit MicroPython bis zur letzten Minute
Annäherungserklärung für Anfänger, um in Kaggle Titanic_2 unter den besten 1,5% (0,83732) zu sein
Erstellen Sie eine Umgebung zum automatischen Laden von setup.bash für jeden von ROS verschobenen Arbeitsbereich