Développement logiciel
Python en production : packaging et dépendances
Tout ce qui sépare un code fonctionnel d'un artefact déployable. Les participants configurent pyproject.toml, construisent des wheels, verrouillent les dépendances avec pip-tools, uv ou Poetry, publient sur un index privé, conteneurisent en builds Docker multi-étapes et auditent la chaîne d'approvisionnement logicielle.
Aperçu
Un apprentissage pratique pour le transfert en situation de travail.
Le scénario est connu : une compilation réussie en mars échoue en septembre parce qu'une dépendance transitive non figée a publié une version mineure, et plus personne ne sait reconstituer l'environnement qui fonctionnait. Cette formation comble cet écart. Les participants migrent un projet vers une arborescence src avec métadonnées déclarées, produisent un fichier de verrouillage avec empreintes, publient une wheel sur un index privé et l'encapsulent dans une image installant toujours les mêmes versions. Le risque lié aux dépendances est traité comme un sujet opérationnel.
Prérequis
Expérience pratique du développement Python et familiarité de base avec Git et la ligne de commande. Aucune connaissance préalable du packaging ou de Docker n'est requise.
Objectifs
- Déclarer correctement métadonnées et dépendances dans pyproject.toml selon la PEP 621.
- Produire des fichiers de verrouillage à empreintes reconstruisant l'environnement à l'identique.
- Construire distributions source et wheels, puis les publier sur un index privé.
- Conteneuriser une application Python avec builds multi-étapes et exécution non root.
- Auditer les dépendances avec pip-audit, générer un SBOM et vérifier les licences.
- Définir une politique de release et de rollback couvrant versions, tags et livraisons défectueuses.
Public cible
- Développeurs Python préparant des bibliothèques internes à une diffusion élargie
- Ingénieurs DevOps et plateforme standardisant les pipelines de build Python
- Responsables de release en charge du versionnage et de la promotion d'artefacts
- Équipes sécurité et conformité évaluant le risque des paquets tiers
- Équipes data déployant modèles et pipelines au-delà d'un poste unique
- Architectes regroupant plusieurs projets Python sur un standard de build unique
Programme
Une structure claire pour le parcours d'apprentissage.
Programme
Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.
Module 1 : Environnements et installations reproductibles
Environnements virtuels, versions d'interpréteur et isolation de l'état projet
pip, uv et Poetry comparés sur la résolution et la vitesse d'installation
Fichiers de verrouillage, empreintes et reconstruction d'un environnement ancien
Diagnostiquer les conflits de dépendances et les échecs de résolution
Module 2 : Arborescence de projet et pyproject.toml
Arborescence src, découverte de paquets et chemins d'import prévisibles
Métadonnées PEP 621 : nom, version, requires-python et spécificateurs de dépendances
Choisir un backend de build parmi hatchling, setuptools et Poetry
Groupes de dépendances optionnels pour tests, documentation et développement
Module 3 : Construction et distribution des paquets
Distributions source, wheels et contraintes de build spécifiques aux plateformes
Points d'entrée et scripts console installés comme outils en ligne de commande
Schémas de version, changelogs et politique de dépréciation fiable pour les utilisateurs
Publier sur PyPI et sur un index privé tel qu'Artifactory ou devpi
Module 4 : Conteneurisation des applications Python
Choix de l'image de base, cache de couches et structure de build multi-étapes
Installer les dépendances dans une image sans casser la reproductibilité
Utilisateurs non root, réduction de la taille d'image et temps de démarrage
Configuration d'exécution, injection de secrets et endpoints de santé
Module 5 : Chaîne d'approvisionnement et risque des dépendances
Auditer les paquets installés avec pip-audit et les bulletins de vulnérabilité
Générer un SBOM et suivre la profondeur des dépendances transitives
Obligations de licence et circuit d'approbation des nouveaux paquets tiers
Politique de mise à jour : plages figées, bots de renouvellement et montées contrôlées
Module 6 : Pipeline de release et exploitation
Jobs CI qui construisent, testent et publient un artefact sur tag
Promouvoir un artefact identique en test, préproduction et production
Rollback, releases retirées et gestion d'une version défectueuse déjà déployée
Configuration d'exécution, destinations des logs et préparation au déploiement
Supports fournis
- Manuel de formation, exemples de code commentés et notes de référence
- Environnement de laboratoire et dépôts de démarrage
- Exercices, check-lists et modèles de code réutilisables
- Certificat de participation 4D
- Accompagnement technique après la formation
Options de formation
Les programmes peuvent être organisés en entreprise, en ligne ou dans un format hybride selon le calendrier, la localisation et les objectifs de vos équipes. Lorsqu'un certificat ou un examen externe est inclus, les règles et frais de certification restent soumis aux politiques de l'organisme certificateur, tandis que 4D assure la formation et l'accompagnement à la préparation.
Pourquoi choisir 4D
4D empaquette l'un de vos projets internes existants pendant l'atelier : les participants voient résoudre leurs propres conflits de dépendances, et non ceux d'un dépôt d'exemple. Le résultat est tangible : un pyproject.toml opérationnel, un fichier de verrouillage à empreintes, une image de conteneur et une politique de mise à jour validée conjointement.
Formations liées
Fondamentaux de la programmation Python
Une introduction pratique à Python pour les ingénieurs et analystes qui ont besoin de code opérationnel plutôt que d'extraits de tutoriel. Les participants acquièrent de l'aisance avec les types, les collections, les fonctions, les fichiers et la gestion des erreurs, puis construisent un programme complet.
View coursePython intermédiaire et pratiques de code propre
Conçue pour les développeurs dont le code Python fonctionne mais résiste au changement. Le programme couvre dataclasses, générateurs, décorateurs, gestionnaires de contexte et annotations de types, puis applique les refactorings qui transforment un module interminable en unités testées contrôlées par black, ruff et mypy.
View courseAutomatisation et scripting Python pour les tâches métier
Destinée aux équipes qui perdent chaque semaine des heures en manipulations de fichiers, de tableurs et de rapports. Les participants automatisent ces tâches avec Python : traitement de fichiers en lot, Excel et CSV, appels d'API REST, alertes par e-mail et tâches planifiées qui signalent clairement toute défaillance.
View course