Publier avec twine
Téléverser vers PyPI
Publier avec twine est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.
La dernière étape
Vous avez créé des artefacts dans dist/. La dernière étape consiste à les téléverser sur PyPI afin que le monde entier puisse installer votre paquet avec pip install. L’outil standard pour cela est twine.
twine téléverse les fichiers de manière sécurisée via HTTPS et valide les artefacts avant leur envoi.
Installer twine
Installez-le avec pip install twine. Il s’agit d’un outil compact et spécialisé : son rôle se limite à valider et à téléverser les fichiers présents dans dist/. Il ne construit rien.
TestPyPI d’abord
Il existe un bac à sable distinct, TestPyPI, pour répéter les téléversements. Publiez-y d’abord afin de détecter les problèmes sans polluer l’index principal. Les noms et les versions sur TestPyPI sont indépendants de ceux de PyPI.
Téléversez avec twine upload --repository testpypi dist/*.
Vérification avant le téléversement
twine check dist/* vérifie que vos métadonnées et votre description longue s’afficheront correctement sur PyPI. Exécutez cette commande à chaque fois : une description incorrecte du README pourrait sinon apparaître sous forme de texte brut sur la page de votre projet.
files = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in files:
status = 'PASSED' if f.endswith(('.gz', '.whl')) else 'SKIP'
print('check', f, '->', status)Des jetons API, pas des mots de passe
Authentifiez-vous avec un jeton API provenant de votre compte PyPI, et non avec votre mot de passe. Utilisez __token__ comme nom d’utilisateur et le jeton, qui commence par pypi-, comme mot de passe. Les jetons peuvent être limités à un seul projet et révoqués à tout moment.
username = '__token__'
token = 'pypi-AgEIcHl...'
print('Username:', username)
print('Token starts with:', token[:5])
print('Never commit the token to git')Stockage des identifiants
Évitez de saisir à nouveau vos jetons en les stockant dans un fichier ~/.pypirc ou dans des variables d’environnement (TWINE_USERNAME, TWINE_PASSWORD). Gardez ce fichier hors du contrôle de version et accessible en lecture uniquement par vous.
Téléverser vers PyPI
Une fois que TestPyPI fonctionne correctement, publiez réellement avec twine upload dist/*. En quelques instants, votre paquet peut être installé partout dans le monde. Il n’y a aucun retour en arrière : vous ne pouvez pas téléverser à nouveau la même version après l’avoir supprimée.
Les versions sont immuables
PyPI ne vous permet jamais d’écraser une version publiée. Si vous découvrez un bogue après la publication, vous devez publier une nouvelle version, par exemple en augmentant le numéro de correctif. Intégrez cette règle à votre flux de travail afin de ne jamais vous retrouver bloqué.
published = {'1.0.0', '1.0.1'}
new_version = '1.0.1'
if new_version in published:
print(new_version, 'already on PyPI - bump and rebuild')
else:
print(new_version, 'is free to upload')Vérifier l’installation
Après le téléversement, vérifiez que tout fonctionne : créez un nouvel environnement virtuel et exécutez pip install mytool, puis importez le paquet. Installer le paquet depuis un environnement vierge permet de détecter les fichiers manquants et les erreurs de dépendances que la construction n’a pas détectés.
Publication approuvée
Les projets modernes peuvent éviter les jetons manuels grâce à la publication approuvée : PyPI authentifie directement un flux de travail d’intégration continue, comme les automatisations GitHub, via le protocole de connexion OpenID. Aucun secret persistant n’est stocké, ce qui est plus sécurisé.
twine effectue toujours le téléversement, mais les identifiants sont temporaires et délivrés au moment de l’exécution.
Automatiser les publications
Une configuration courante déclenche une publication lorsque vous envoyez une étiquette git comme v1.0.0. Le flux de travail d’intégration continue construit le paquet, exécute twine check et le téléverse automatiquement. La création d’une étiquette devient la seule action nécessaire pour publier une version.
Cela rend les publications cohérentes et élimine les erreurs de téléversement manuel.
Vérification rapide
Évaluez vos connaissances sur la publication.
Récapitulatif
Vous avez publié un paquet :
pip install twine, puistwine check dist/*- Répétez l’opération sur TestPyPI avant le téléversement réel
- Authentifiez-vous avec un jeton API limité (
__token__), jamais avec un mot de passe twine upload dist/*publie le paquet ; les versions sont immuables, alors augmentez la version pour corriger les bogues- Vérifiez avec une commande
pip installdans un environnement vierge
Apprends Python avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 76
- Leçons
- 320
Questions Fréquemment Posées
La leçon « Publier avec twine » est-elle gratuite ?
Oui — le texte complet de « Publier avec twine » 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 « Publier avec twine » ?
Téléverser vers PyPI 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 4 sur 4.
Combien de temps prend la leçon « Publier avec twine » ?
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