0Pricing
Python Academy · Leçon

Structure du projet et pyproject.toml

Organiser un paquet

Structure du projet et pyproject.toml est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Pourquoi empaqueter votre code

Un script reste sur votre machine ; un paquet peut être installé par toute personne disposant de pip install. L'empaquetage transforme un dossier de code en une unité distribuable, versionnée et réutilisable.

La première étape consiste à créer une organisation de projet claire et un fichier de configuration.

L'organisation src

La structure recommandée place le code que l'on peut importer dans un dossier src/ :

  • src/mypackage/__init__.py
  • src/mypackage/core.py
  • pyproject.toml
  • README.md et tests/

L'organisation src empêche d'importer accidentellement votre code depuis la racine du projet au lieu de la copie installée.

Le fichier __init__.py

__init__.py marque un répertoire comme paquet que l'on peut importer et s'exécute lors de la première importation du paquet. C'est également à cet endroit que vous exposez l'interface publique en important les noms principaux.

Même un fichier __init__.py vide suffit à créer un paquet.

package_dir = 'src/mypackage'
files = ['__init__.py', 'core.py', 'utils.py']
for f in files:
    print(package_dir + '/' + f)
print('Importable as:', 'mypackage')

Qu'est-ce que pyproject.toml

pyproject.toml est le fichier de configuration unique et normalisé (PEP 518/621) utilisé pour l'empaquetage Python moderne. Il remplace setup.py dans la plupart des projets et est lu par les outils de construction.

Il utilise le format TOML : des sections entre crochets et des lignes clé = valeur.

La table build-system

La table [build-system] indique aux outils comment construire votre paquet. Un choix courant :

  • requires = ['setuptools', 'wheel']
  • build-backend = 'setuptools.build_meta'

D'autres moteurs de construction incluent Hatchling et Flit ; l'idée reste la même.

La table project

La table [project] contient les métadonnées : name, version, description, authors, readme, requires-python et dependencies. C'est ce que les utilisateurs voient sur PyPI.

Considérez-la comme la carte d'identité de votre paquet.

project = {
    'name': 'mytool',
    'version': '0.1.0',
    'requires-python': '>=3.9',
    'dependencies': ['requests>=2.0'],
}
for k, v in project.items():
    print(k, '=', v)

Règles de nommage

Le nom du paquet doit être unique sur PyPI et respecter les règles de normalisation : il ne tient pas compte de la casse, et les traits d'union et traits de soulignement sont considérés comme équivalents. Vérifiez sa disponibilité avant de vous décider, afin d'éviter un conflit au moment de l'envoi.

name = 'My_Cool.Tool'
normalized = name.lower().replace('_', '-').replace('.', '-')
print('PyPI normalized name:', normalized)

Déclaration des dépendances

Répertoriez les dépendances d'exécution sous dependencies avec des contraintes de version comme 'requests>=2.28,<3'. Les options supplémentaires vont sous [project.optional-dependencies] et peuvent être installées avec pip install mytool[dev].

Gardez les contraintes aussi souples que possible sans compromettre la sécurité, afin que votre paquet puisse coexister avec les autres.

Points d'entrée

Pour distribuer un outil en ligne de commande, ajoutez une entrée [project.scripts] telle que mytool = 'mypackage.cli:main'. Après l'installation, la saisie de mytool exécute cette fonction. C'est ainsi que des interfaces en ligne de commande comme black ou pytest exposent leurs commandes.

Inclure les fichiers non liés au code

Les fichiers de données (modèles, JSON) ne sont pas inclus automatiquement. Configurez les données du paquet dans votre moteur de construction afin que les fichiers soient inclus dans le paquet binaire. Oublier cette étape est une cause fréquente de problèmes qui fonctionnent en local mais échouent après l'installation.

Installations modifiables pour le développement

Pendant le développement, installez votre paquet en mode modifiable avec pip install -e .. Les modifications apportées au code source prennent effet immédiatement, sans réinstallation. Cela nécessite un fichier pyproject.toml correct, ce qui constitue une raison supplémentaire de le configurer tôt.

Les installations modifiables offrent la boucle de rétroaction la plus rapide lors de l'itération sur un paquet.

Vérification rapide

Évaluez vos connaissances sur la structure d'un projet.

Récapitulatif

Vous avez structuré un paquet :

  • Utiliser l'organisation src avec __init__.py pour marquer les paquets
  • pyproject.toml est la configuration standard : [build-system] et [project]
  • Déclarer name, version, requires-python et dependencies
  • Ajouter des points d'entrée [project.scripts] pour les interfaces en ligne de commande et configurer les données du paquet

Questions Fréquemment Posées

La leçon « Structure du projet et pyproject.toml » est-elle gratuite ?

Oui — le texte complet de « Structure du projet et pyproject.toml » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Structure du projet et pyproject.toml » ?

Organiser un paquet Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Structure du projet et pyproject.toml » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structure du projet et pyproject.toml
  2. Construire avec build
  3. Gestion des versions et des métadonnées
  4. Publier avec twine
← Retour à Python Academy