
Gestion des dépendances? Shaw, encore une fois?
L'écosystème Python a engendré un tas de façons de gérer les dépendances dans les projets.
À l'heure actuelle, vous pouvez choisir entre setup.py, requirements.txt, setup.cfg, MANIFEST.in et Pipfile.
Mais le pythoniste français Sébastien Eustace n'a pas mis au point toutes ces méthodes, et il a écrit son propre truc pour la gestion des packs d'animaux - Poésie . Pourquoi a-t-il fait ça? Pour remplacer tous ces setup.py, requirements.txt, setup.cfg, MANIFEST.in et Pipfile par quelque chose de simple et direct. De plus, ajoutez quelque chose d'utile sur le dessus.

La poésie vous permet de diriger un tas de choses à la fois - la version linguistique de votre projet, les dépendances, les chemins enfichables, les scripts de test / développement, les builds et les builds de publication. Tous les chemins, dépendances et scripts nécessaires sont décrits dans un fichier pyproject.toml spécial.
La poésie fonctionne mieux lorsqu'elle est associée à pyenv , un système de gestion de plusieurs versions de Python et d'environnements virtuels.
Ressentez
Retroussez nos manches et voyez comment la poésie fonctionne dans les affaires. La première chose à faire est de mettre pyenv , en suivant les instructions officielles sur les quais.
L'environnement est installé et configuré, les dépendances sont contrôlées d'un doigt, vous pouvez couper le code!
Vous aurez très probablement dans vos commandes de projet pour lancer le serveur, les travailleurs, les scripts de déploiement et les tests. Vous pouvez les mettre dans pyproject.toml et les diriger avec un seul doigt.
Ajouter au fichier
my-script = "my_module:main"
et maintenant vous pouvez exécuter le script avec la commande
poetry run my-script
Pourquoi tout cela?
En passant une douzaine de minutes à maîtriser cette chose, vous économiserez du temps et des nerfs sur la gestion des versions de la langue et des packages, le suivi des dépendances et la définition des chemins. Cela aidera particulièrement ceux qui ont essayé au moins une fois de publier leurs développements dans pip :)
- Un résolveur de dépendances capable de toujours trouver une solution aux conflits de version de package (s'il existe)
- Créez automatiquement des sandbox pour exécuter des projets.
- Un bel utilitaire de console qui simplifie considérablement le lancement, les tests et les projets de déploiement.
La poésie est amie avec d'autres contrôleurs d'environnement virtuel, il sera donc très facile d'intégrer la nouvelle approche dans d'anciens projets.