Construire avec build
Créer des wheels et des sdists
Construire avec build est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.
Ce que signifie construire
Votre code source doit être transformé en artefacts de distribution que pip peut installer. L'outil moderne pour cela est build, exécuté avec python -m build.
Il produit deux types de fichiers : une distribution source et un paquet binaire.
Distribution source ou paquet binaire
Deux types d'artefacts :
- distribution source (.tar.gz), une archive du code source que pip construit lors de l'installation
- paquet binaire (.whl), une archive préconstruite que pip se contente de décompresser
Les paquets binaires s'installent plus rapidement et sont privilégiés. La distribution source constitue la solution de repli et la source de référence.
Installation de l'outil de construction
Installez-le une fois avec pip install build. Il s'agit d'une interface légère : elle lit votre pyproject.toml, configure un environnement isolé et appelle votre moteur de construction pour créer les artefacts.
Vous n'appelez pas directement le moteur ; build orchestre son exécution.
Exécution de la construction
Depuis la racine du projet, exécutez python -m build. Par défaut, la commande crée une distribution source et un paquet binaire, puis les place dans un nouveau répertoire dist/.
Utilisez --wheel ou --sdist pour n'en construire qu'un seul.
args = []
targets = []
if '--sdist' in args:
targets.append('sdist')
if '--wheel' in args:
targets.append('wheel')
if not targets:
targets = ['sdist', 'wheel']
print('Will build:', targets)Noms de fichiers des paquets binaires
Les noms des paquets binaires codent les métadonnées : mytool-0.1.0-py3-none-any.whl signifie que le nom est mytool, la version 0.1.0, qu'il s'agit de Python 3, sans exigence d'ABI et compatible avec toute plateforme. Les paquets Python pur utilisent py3-none-any.
name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))Isolation de la construction
Par défaut, build crée un nouvel environnement virtuel, y installe les éléments requires de votre [build-system], puis y effectue la construction. Cela garantit que la construction ne dépend pas accidentellement de paquets présents uniquement par hasard dans votre environnement.
Inspection du dossier dist
Après une construction, dist/ contient vos artefacts. Le fait de le lister confirme ce qui a été produit avant l'envoi. Il s'agit d'une simple liste du contenu d'un répertoire.
dist = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in dist:
kind = 'sdist' if f.endswith('.tar.gz') else 'wheel'
print(kind.ljust(6), f)Vérification d'un paquet binaire
Un paquet binaire n'est qu'une archive ZIP. Vous pouvez la décompresser pour vérifier que vos modules et fichiers de données sont présents et qu'aucun élément important n'a été oublié. Si un fichier manque ici, il manquera également après l'installation.
Constructions propres
Des fichiers obsolètes dans build/ ou dist/ peuvent produire des résultats déroutants. Supprimez ces répertoires avant une construction de publication afin de publier exactement ce que produit le code source actuel.
stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
print('Remove before clean build:', d)Constructions reproductibles
Le même code source doit toujours produire les mêmes artefacts. Verrouillez les versions de votre moteur de construction dans [build-system] requires et évitez de récupérer des valeurs depuis l'environnement actif. La reproductibilité signifie qu'un collègue ou un serveur d'intégration continue obtient une sortie identique.
Combinée à des constructions propres, elle élimine les mauvaises surprises liées à une exécution qui ne fonctionne que sur votre machine.
Construire dans un environnement d'intégration continue
La plupart des projets sont construits sur un serveur d'intégration continue plutôt que sur un ordinateur portable. Une tâche d'intégration continue récupère le code, exécute python -m build et conserve les artefacts. Cela garantit que les publications proviennent chaque fois d'un état propre et connu.
C'est exactement la même commande que celle exécutée localement qui s'exécute dans l'environnement d'intégration continue.
Vérification rapide
Évaluez vos connaissances sur la construction.
Récapitulatif
Vous avez appris à construire des artefacts :
pip install build, puispython -m build- Produit une distribution source (.tar.gz) et un paquet binaire (.whl) dans
dist/ - Les constructions ont lieu dans un environnement isolé à l'aide des éléments
[build-system]requires - Inspecter le paquet binaire et effectuer des constructions propres avant la publication
Questions Fréquemment Posées
La leçon « Construire avec build » est-elle gratuite ?
Oui — le texte complet de « Construire avec build » 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 « Construire avec build » ?
Créer des wheels et des sdists 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 2 sur 4.
Combien de temps prend la leçon « Construire avec build » ?
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
- Structure du projet et pyproject.toml
- Construire avec build
- Gestion des versions et des métadonnées
- Publier avec twine