A propos des dépendances#
Les dépendances sont une partie importante de tout projet logiciel, et elles peuvent affecter considérablement le processus de développement. Dans cette section, nous allons discuter des dépendances utilisées dans notre projet, comment les gérer et les meilleures pratiques pour les maintenir à jour.
Gérer les dépendances#
Les dépendances du projet DataLab sont définies dans le fichier pyproject.toml, comme recommandé officiellement par l’autorité de packaging Python (voir Writing your pyproject.toml).
« Le fichier pyproject.toml contient de nombreuses sections, mais les plus pertinentes pour les dépendances sont :
[project.dependencies]: Cette section liste les dépendances directes de l’application. Ce sont les paquets dont l’application a besoin pour fonctionner.
[project.optional-dependencies]: Cette section liste les dépendances optionnelles qui peuvent être installées pour activer des fonctionnalités supplémentaires. Ces dépendances ne sont pas nécessaires au fonctionnement de base de l’application, mais peuvent améliorer ses capacités.
Parmi les dépendances optionnelles, nous avons les groupes suivants :
qt: interface utilisateur graphique basée sur Qt (actuellement, PyQt5).
opencv: tâches de vision par ordinateur nécessitant OpenCV.
dev: développement et tests (linters, formateurs, etc.).
doc: construction de la documentation (Sphinx, etc.).
test: exécution des tests (pytest, etc.).
Déployer les dépendances#
En production#
En production, nous recommandons d’utiliser le gestionnaire de paquets qui convient le mieux à votre environnement et avec lequel vous êtes le plus à l’aise. Tous les gestionnaires de paquets (par exemple, pip, conda) utilisent directement ou indirectement les informations du fichier pyproject.toml pour installer les dépendances.
Voir Installation pour plus d’informations sur la façon d’installer DataLab et ses dépendances.
En développement#
En développement, vous pouvez également utiliser le fichier de texte des exigences pour faciliter l’installation des dépendances dans un environnement virtuel ou un conteneur.
Le fichier requirements.txt liste toutes les dépendances nécessaires au projet, y compris les dépendances directes et optionnelles. C’est la liste exacte des dépendances définies dans le fichier pyproject.toml, mais formatée pour être utilisée avec pip ou d’autres gestionnaires de paquets qui prennent en charge les fichiers de dépendances.
Note
Le fichier de dépendances est généré à partir du fichier pyproject.toml à l’aide d’un outil fourni par le package guidata.
python -m guidata.utils.genreqs txt # to generate requirements.txt
Ajouter de nouvelles dépendances#
Lors de l’ajout de nouvelles dépendances au projet, veuillez suivre ces règles :
Si c’est une dépendance directe, c’est-à-dire un paquet dont l’application a besoin pour fonctionner, ajoutez-le à la section [project.dependencies] dans le fichier pyproject.toml, et spécifiez la plage de versions compatible avec l’application, afin d’éviter les changements incompatibles.
Si c’est une dépendance optionnelle, c’est-à-dire un paquet qui peut être installé pour activer des fonctionnalités supplémentaires, ajoutez-le à la section appropriée dans la section [project.optional-dependencies] du fichier pyproject.toml.
Pour les dépendances dev, sauf si c’est absolument nécessaire, ne spécifiez pas de plage de versions, car cela peut limiter la capacité à utiliser la dernière version du paquet.
Pour les autres dépendances optionnelles, spécifiez la plage de versions compatible avec l’application, afin d’éviter les changements incompatibles.
Note
En d’autres termes, sauf pour les dépendances dev, spécifiez toujours une plage de versions compatible avec l’application.