Python dans le code source public français : les chiffres de l'inventaire code.gouv.fr

L'État tient un inventaire public des dépôts de code source publiés par les organismes publics français. En l'analysant, une question simple trouve une réponse chiffrée : dans quels langages l'administration écrit-elle le code qu'elle publie, et quelle place y occupe Python ? Réponse courte : la première, sur GitHub, avec des pratiques de publication plutôt meilleures que la moyenne, mais encore loin d'être systématiques.
La source : l'inventaire de code.gouv.fr
La Direction interministérielle du numérique (DINUM) publie sur data.gouv.fr l'inventaire des codes sources de logiciels publiés par des organismes publics, sous Licence Ouverte 2.0. Le fichier des dépôts (codegouvfr-repositories.csv) que nous avons téléchargé le 10 novembre 2026 est daté du 24 septembre 2025 ; c'est la version analysée ici. La fiche du jeu de données prévient qu'il n'est pas exhaustif, la liste des comptes d'organisation recensés étant incomplète, et indique qu'il n'est plus mis à jour depuis le 13 avril 2025, alors que le fichier lui-même contient des dates de mise à jour de dépôts allant jusqu'au 23 septembre 2025. Les chiffres qui suivent décrivent donc un instantané de 2025, pas l'état actuel.
Le fichier recense 32 999 dépôts sur 82 forges : GitHub, mais aussi les instances GitLab d'universités et d'organismes de recherche. Seuls les dépôts hébergés sur GitHub (9 856) ont un langage renseigné ; l'analyse des langages porte donc sur GitHub uniquement. Nous avons écarté les copies de projets tiers (forks), ce qui laisse 8 552 dépôts appartenant à 243 comptes, dont 7 400 ont un langage principal identifié.
Python, premier langage des dépôts publics sur GitHub
Avec 1 334 dépôts, Python devance JavaScript (1 155) et Java (1 100). Si l'on ajoute les 243 dépôts dont le langage principal est « Jupyter Notebook », presque toujours des carnets Python, on atteint 1 577 dépôts. Le « langage principal » est celui que la forge attribue au dépôt d'après le volume de code : un projet Python accompagné d'une grosse interface web peut apparaître sous JavaScript.
Le détail par compte nuance la lecture des chiffres bruts. Les 1 100 dépôts Java se concentrent sur 75 comptes, et deux d'entre eux, lutece-platform et lutece-secteur-public, en totalisent à eux seuls 556 (404 et 152) : l'écosystème de modules du cadre applicatif Lutece pèse donc la moitié du total Java. Python est beaucoup plus dispersé : 149 comptes, dont aucun ne dépasse 67 dépôts. Les plus fournis sont medialab (67), etalab (65), betagouv (65), PyMoDAQ (61), openalea (45), openfisca (40) et IGNF (38). On y retrouve des laboratoires de recherche, des équipes de l'État et des opérateurs de données publiques, ce qui correspond aux usages connus du langage : analyse de données, calcul scientifique, outils de traitement et services web.
Sur les seuls dépôts actifs (non archivés, mis à jour depuis le 1er janvier 2025), l'ordre change : Java passe devant avec 740 dépôts sur 3 240 (22,8 %), contre 618 pour Python (19,1 %). L'écart s'explique largement par les modules Lutece, mis à jour en bloc : 544 des 740 dépôts Java actifs relèvent des deux comptes Lutece.
Licences, contribution, activité : les pratiques comparées
| Langage | Dépôts | Comptes | Licence de la liste officielle | Sans licence détectée | Fichier CONTRIBUTING | Mis à jour en 2025 |
|---|---|---|---|---|---|---|
| Python | 1 334 | 149 | 57,1 % | 28,2 % | 13,3 % | 47,9 % |
| JavaScript | 1 155 | 145 | 43,9 % | 46,8 % | 3,5 % | 30,8 % |
| Java | 1 100 | 75 | 24,5 % | 68,5 % | 2,2 % | 67,7 % |
| TypeScript | 525 | 82 | 55,8 % | 36,2 % | 12,0 % | 62,1 % |
| HTML | 460 | 140 | 33,5 % | 54,3 % | 6,1 % | 34,1 % |
| Jupyter Notebook | 243 | 59 | 48,1 % | 42,8 % | 7,4 % | 37,0 % |
Licences. Pour publier un logiciel, un organisme public doit choisir une licence dans la liste prévue à l'article D323-2-1 du code des relations entre le public et l'administration (MIT, BSD, Apache 2.0, CeCILL, GPL, LGPL et AGPL version 3, MPL 2.0, EPL 2.0, EUPL 1.2). Parmi les dépôts Python, 762 (57,1 %) portent une licence dont l'identifiant correspond à cette liste. Les plus fréquentes sont MIT (346 dépôts, 25,9 %), AGPL-3.0 (134, 10,0 %), GPL-3.0 (131, 9,8 %), BSD-3-Clause (67, 5,0 %) et Apache-2.0 (54, 4,0 %). 158 dépôts (11,8 %) ont une licence que l'outil de collecte n'a pas reconnue (« other ») : aucune licence CeCILL-B ou CeCILL-C n'apparaît sous son propre identifiant dans le fichier : les dépôts qui en utilisent figurent sans doute dans cette catégorie, aux côtés de textes maison. Enfin 376 dépôts (28,2 %) n'ont aucune licence détectée. C'est moins que pour JavaScript (46,8 %) ou Java (68,5 %), mais cela reste plus d'un dépôt Python sur quatre dont la réutilisation n'est pas juridiquement claire. 38 dépôts utilisent des licences reconnues mais absentes de la liste, surtout la GPL version 2 (24 dépôts) et la LGPL 2.1 (10).
Contribution. La documentation de code.gouv.fr recommande de décrire les modalités de contribution dans un fichier CONTRIBUTING.md à la racine du dépôt. 178 dépôts Python (13,3 %) en ont un, la proportion la plus élevée des grands langages, à égalité avec Shell (13,1 %) et devant TypeScript (12,0 %).
Activité. 639 dépôts Python ont une date de dernière mise à jour en 2025, et 131 sont archivés, c'est-à-dire explicitement figés par leurs responsables. Une mise à jour peut être mineure ; ce chiffre mesure un signe de vie, pas un volume de développement.
Ce qu'il faut en retenir
Python est le langage le plus répandu dans le code que les organismes publics français publient sur GitHub, et il l'est de façon diffuse, porté par une large variété d'équipes plutôt que par un grand projet unique. Les dépôts Python sont aussi, en proportion, mieux licenciés et plus ouverts à la contribution que ceux des autres grands langages. Mais plus d'un sur quatre reste sans licence détectée, ce qui empêche en droit sa réutilisation : c'est le premier point à vérifier avant d'ouvrir un dépôt, comme nous l'expliquons dans Publier du code Python dans un organisme public. Pour les noms, les commentaires et la documentation, la doctrine de l'État est détaillée dans Coder en français ou en anglais ?
Méthode
- Fichier :
codegouvfr-repositories.csv, 32 999 lignes, en-tête HTTPLast-Modifieddu 24 septembre 2025, téléchargé le 10 novembre 2026. - Périmètre : dépôts dont la forge est
github.com(seuls à avoir un langage renseigné), hors forks (colonnefork), soit 8 552 dépôts ; parts calculées sur les 7 400 dont la colonnelanguageest remplie. - Licences : colonne
license(identifiants de licence détectés, par exemplemit,agpl-3.0). Sont comptés « liste officielle » les identifiants apache-2.0, bsd-2-clause, bsd-3-clause, cecill-b, mit, cecill-2.1, cecill-c, gpl-3.0, lgpl-3.0, agpl-3.0, mpl-2.0, epl-2.0 et eupl-1.2. Les identifiants ne distinguent pas toujours les variantes « only » et « or-later » des licences GNU. - Contribution : colonne
contributing, qui indique la présence d'un fichier CONTRIBUTING selon le script de collecte publié par la DINUM (dépôtcodegouvfr-cli). - Activité : colonnes
updated_at(date de dernière mise à jour à partir du 1er janvier 2025) etarchived. - Limites : inventaire non exhaustif ; langage principal attribué automatiquement ; forges autres que GitHub absentes de l'analyse des langages.
Données : le tableau complet des 12 premiers langages (dépôts, comptes, licences, CONTRIBUTING, archivage, activité) est téléchargeable au format CSV : python-code-public-langages-2025-09.csv. Il est dérivé de l'inventaire de la DINUM, diffusé sous Licence Ouverte 2.0 ; vous pouvez le réutiliser librement en citant la source : « Four Spaces, d'après l'inventaire code.gouv.fr (DINUM), septembre 2025 ».
Sources
- Inventaire des codes sources de logiciels publiés par des organismes publics, DINUM, data.gouv.fr, Licence Ouverte 2.0 (fichier des dépôts du 24 septembre 2025).
- code.gouv.fr, documentation de la mission logiciels libres (licences, fichier CONTRIBUTING, plateforme ecosystem.code.gouv.fr).
- Liste des licences de réutilisation prévue à l'article D323-2-1 du CRPA, présentée sur data.gouv.fr ; script de collecte
codegouvfr-clide la DINUM (définition des colonnes).
Code public et donnéesPublier du code dans le public
Code source et CRPA, licences de la liste officielle, README, CONTRIBUTING, degrés d'ouverture et style : la marche à suivre.
Style et lisibilitéCoder en français ou en anglais ?
Ce que permettent Python et PEP 3131, ce que recommandent PEP 8 et code.gouv.fr, et les pièges des accents et de la typographie française.