[PYTHON] Changez le package à installer pour chaque environnement avec de la poésie

Notez que je gère l'environnement python avec Poetry et que je souhaite mettre différents packages pour le serveur d'apprentissage et le serveur d'inférence.

Contexte

Fondamentalement, j'ai pensé qu'il serait bon de tout mettre dans des dépendances, mais il semble qu'il existe des packages puissants et vicieux dans le monde qui nécessitent plusieurs Go de mémoire simplement en les installant, de sorte que même une mauvaise infrastructure peut l'installer. Hé ... c'est devenu un problème.

Il semble raisonnable de renforcer (temporairement) votre infrastructure, mais êtes-vous convaincu que vous allez certainement redimensionner votre instance une fois l'installation terminée au cours des prochains mois ou années? Je ne. Alors je l'ai conçu.

Sujet principal

la poésie a les concepts «optionnel» et «extras». Options pour les sous-commandes ʻadd et ʻinstall, respectivement.

En conclusion, les étapes suivantes ont fonctionné:

1. Lors de l'ajout d'un package dépendant

$ poetry add --optional SOME_STRONG_PACKAGE

2. Ajoutez le package extras à pyproject.toml avec n'importe quel éditeur

$ vi pyproject.toml

#↓ Ajouter
[tool.poetry.extras]
train = ["torch", "torchtext"]
↑ Nom du groupe ↑ Liste des paquets à installer (assurez-vous qu'il est facultatif dans les dépendances)

3. Installation (si les extras ne sont pas nécessaires)

$ poetry install

3 '. Installation (si des extras sont nécessaires)

$ poetry install -E train

Où ça se coince

Lorsque j'essaye la méthode ci-dessus sur un projet déjà géré par la poésie, j'obtiens l'erreur suivante:

[ValueError]        
Extra [train] is not specified.  

Après cela, j'ai supprimé poetry.lock et essayé à nouveau l'installation de poésie ci-dessus -E train` et cela a fonctionné. De toute évidence, le message d'erreur n'est pas une chance de relations publiques </ s>.

Recommended Posts

Changez le package à installer pour chaque environnement avec de la poésie
Changer le module à charger pour chaque environnement d'exécution en Python
Comment définir l'environnement de développement pour chaque projet avec VSCode + extension Python + Miniconda
Déplacez ce que vous avez installé avec pip dans l'environnement conda
Créez un environnement d'exécution pour chaque langue avec boot2docker
Comment préparer un environnement avec une version et un package Python différents pour chaque projet avec pyenv-virtualenv sur Amazon Linux
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
[Pour les débutants] Installez le package dans l'environnement Anaconda (Janome)
Changer la valeur de paramètre de setting.py en fonction de l'environnement de développement
Unifier l'environnement de l'équipe de développement Python en commençant par Poetry
Comment changer le fichier de configuration pour qu'il soit lu par Python
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Que faire si la dépendance du package ne peut pas être réparée
Vous ne trouvez pas le package que vous avez installé avec pip install --user?
Obtenez la version du package pour vous inscrire à PyPI à partir de Git
De la construction de l'environnement au déploiement pour flask + Heroku avec Docker
Je veux installer le package de requirements.txt avec poésie
Comment entrer dans l'environnement de développement Python avec Vagrant
Changer PYTHONPATH pour chaque virtualenv
Basculer python vers 2.7 avec des alternatives
Changer d'environnement virtuel avec jupyter
[Pour les débutants en informatique] Que faire lorsque la commande rev ne peut pas être utilisée avec Git Bash
Familiarisez-vous avec (voulez être) autour du pipeline de spaCy
django ne peut pas être installé dans l'environnement de développement de pipenv + pyenv
Créez un alias pour Route53 vers CloudFront avec l'API AWS
Créer un environnement Python pour ceux qui veulent devenir des data scientists 2016
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
Jupyter Notebook 6.0.2 ne peut pas être installé dans l'environnement Python 2.7 créé dans Anaconda
Solution au problème que Ctrl + z ne peut pas être utilisé dans Powershell dans l'environnement Docker pour Windows (provisoire)
Un mémo lors de la création d'un environnement qui peut être débogué avec Lambda @ Edge pour le moment
Après avoir commencé, j'ai essayé d'exécuter localement la division de déploiement httpd conf pour chaque environnement avec ansible
Raisons pour lesquelles la cuisine outil / environnement a changé le PC principal de Linux à Windows + WSL2 et notes de travail
TensorFlow 2.2 ne peut pas être installé avec Python 3.8!
Préparez l'environnement de développement avec anyenv
Préparer l'environnement pour Atom pour Pythonista
Démarrez la dernière odo avec 2 commandes à l'aide de Docker Desktop pour Windows
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
Comment changer facilement l'environnement virtuel créé par Conda sur Jupyter
Impossible d'importer les packages installés dans l'environnement virtuel avec Anaconda sous Windows 10
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Générer semi-automatiquement une description du package à enregistrer dans PyPI
Écrivain AtCoder J'ai écrit un script qui regroupe les concours pour chaque écrivain
Recherchez des mots-clés Twitter avec tweepy et écrivez les résultats dans Excel
Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions
J'ai essayé avec les 100 meilleurs packages PyPI> J'ai essayé de représenter graphiquement les packages installés sur Python
J'ai installé la bibliothèque avec Visual Studio Code, mais impossible d'importer
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_1
Correction d'un bug où node.surface ne pouvait pas être obtenu avec python3 + mecab
Un guide pour faire de l'IoT avec MicroPython facilement jusqu'à la dernière minute
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_2
Créez un environnement pour charger automatiquement setup.bash pour chaque espace de travail déplacé par ROS