Recherche de site Web

Comment publier des packages Python sur PyPI en utilisant Poetry sur Ubuntu 22.04


Introduction

Poetry est un gestionnaire de dépendances pour Python qui est également capable de construire et d'emballer vos projets Python pour la distribution. PyPI est le référentiel officiel de Python pour télécharger et télécharger des packages Python, et sera utilisé dans ce tutoriel. C'est la source officielle de tiers pour les packages Python, et est géré par la Python Software Foundation. Publier vos packages sur PyPI les rend disponibles publiquement pour installation par vous-même ou par quiconque.

Dans ce tutoriel, vous allez créer un compte PyPI, configurer l'authentification par token avec votre compte pour l'utiliser avec Poetry, puis construire et publier votre projet empaqueté sur PyPI. Cela vous permettra également d'ajouter votre package publié en tant que dépendance à vos autres projets Python.

Conditions préalables

  • Un serveur Ubuntu 22.04, configuré selon notre guide de configuration initiale pour Ubuntu 22.04, avec un utilisateur non root ayant des privilèges sudo et un pare-feu activé.
  • La dernière version de Python 3 installée sur votre machine suivant l'Étape 1 sur comment installer Python 3 et configurer un environnement de programmation sur un serveur Ubuntu 22.04.
  • Poetry installé sur votre système, suivant ce guide sur comment installer Poetry pour gérer les dépendances Python sur Ubuntu 22.04.

Étape 1 — Créer un compte PyPI

Pour publier un paquet sur PyPI, vous devrez créer un compte. Rendez-vous sur la page d'inscription officielle dans votre navigateur :

Page d'inscription PyPI

Ensuite, vous devrez activer l'authentification par jeton afin d'utiliser en toute sécurité vos identifiants PyPI avec Poetry.

Étape 2 — Activer l'authentification par jeton pour PyPI

L'authentification par jeton est la méthode recommandée pour utiliser votre compte PyPI en ligne de commande. Vous pouvez utiliser un seul jeton généré automatiquement au lieu d'un nom d'utilisateur et d'un mot de passe. Les jetons peuvent être ajoutés et révoqués à tout moment ou attribués avec un accès granulaire à certaines parties de votre compte. Cela les rend plus sécurisés et évite le risque de compromission de votre mot de passe. Vous devrez créer un nouveau jeton API pour votre compte en vous rendant dans les paramètres de votre compte :

Paramètres du compte PyPI

Faites défiler vers le bas jusqu'à atteindre la section “Jetons API”. Cliquez sur “Ajouter un jeton API” :

Ajouter un jeton API PyPI

Sur la page suivante, vous pouvez nommer votre jeton. Ce tutoriel l'appellera poetry, mais n'hésitez pas à choisir le nom que vous souhaitez :

Création de jeton API PyPI

Une fois que votre token est créé, il est important de le copier car il ne sera affiché qu'une seule fois. C'est une pratique courante avec les tokens API qui vous permettent d'en créer un nouveau si nécessaire, alors prenez note de votre token avant de continuer.

Avertissement de copie PyPI

Vous utiliserez maintenant ce jeton pour configurer vos identifiants dans Poetry en vue de la publication. Au lieu d'ajouter votre jeton API à chaque commande qui en a besoin dans Poetry, vous le ferez une seule fois en utilisant la commande config de Poetry.

Ajoutez votre jeton API à Poetry avec cette commande :

  1. poetry config pypi-token.pypi your-api-token

Avec votre jeton API ajouté en tant que vos identifiants, Poetry vous informera que vos identifiants sont stockés dans un fichier en texte brut. Cela poserait un problème si vous utilisiez un nom d'utilisateur et un mot de passe traditionnels pour vos identifiants. Étant donné que les jetons peuvent être facilement supprimés et renouvelés, tout en étant également générés aléatoirement et uniques à un cas d'utilisation particulier, cela rend le stockage des jetons ici un compromis sûr pour la commodité. En revanche, vous pouvez choisir d'entrer votre jeton API manuellement pour chaque commande.

Avec cela, vous êtes prêt à créer puis à publier votre projet.

Étape 3 — Construire votre projet

La construction est identique à l'emballage de votre projet, et c'est une étape requise avant de pouvoir le publier. Pour construire votre projet, saisissez ce qui suit :

poetry build
Building sammy-poetry (0.1.0)
  - Building sdist
  - Built sammy-poetry-0.1.0.tar.gz
  - Building wheel
  - Built sammy_poetry-0.1.0-py3-none-any.whl

Deux fichiers seront générés. Le premier est la source qui est sdist, qui génère un fichier tar.gz. Le second est le paquet compilé, qui est wheel, qui génère un fichier .whl. Avec ces fichiers, vous êtes maintenant prêt à publier votre paquet Python sur PyPI.

Étape 4 — Publier votre paquet Python sur PyPI

PyPI est la cible de publication par défaut pour Poetry. Avec votre jeton d'API d'authentification déjà en place, votre commande de publication n'aura pas besoin d'inclure à nouveau vos identifiants.

Pour publier votre package compilé, entrez ce qui suit :

poetry publish
Publishing sammy-poetry (0.1.0) to PyPI
 - Uploading sammy-poetry-0.1.0.tar.gz 100%
 - Uploading sammy_poetry-0.1.0-py3-none-any.whl 100%

Vous pouvez maintenant vérifier votre package publié. Ouvrez vos projets PyPI dans votre navigateur.

PyPI Votre package téléchargé

Votre paquet est publié, est disponible publiquement sur PyPI, et est également disponible en tant que dépendance via Poetry. Vous pouvez ajouter votre propre paquet publié en tant que dépendance dans vos autres projets Python.

Remarque : Vous pouvez construire et publier votre package sur PyPI en une seule commande en ajoutant le drapeau suivant à votre appel publish :

  1. poetry publish --build

Cela peut être plus efficace en fonction de la maturité de votre projet et de votre flux de travail.

Conclusion

Dans ce tutoriel, vous avez utilisé Poetry pour sa capacité de construction et de publication. Vous avez créé un compte PyPI, configuré l'authentification par jeton API avec Poetry, puis compilé votre projet avant de le publier. Votre paquet est disponible en tant que dépendance publique et peut même être inclus en tant que dépendance via Poetry.

Ensuite, vous voudrez peut-être vous plonger plus profondément dans Python en consultant notre série de tutoriels Comment coder en Python.