Python est un langage de programmation qui est devenu très populaire ces derniers temps. Il a bénéficié du soutien de grandes entreprises telles que Google et Yahoo et a été utilisé pour développer certains de leurs produits célèbres. L’une des raisons de sa popularité est l’accès facile aux bibliothèques, qui est l’une de ses caractéristiques exceptionnelles. L’utilisation et la construction de ces packages, qu’ils soient basés sur la communauté ou non, est l’un des principaux points forts de Python. La facilité avec laquelle vous pouvez accéder à ces bibliothèques via PyPi est l’une des raisons de sa popularité.

Mais cela dit, vous vous demandez peut-être comment distribuer son propre paquet aux masses ? Dans ce didacticiel, nous allons présenter un guide étape par étape pour vous aider à télécharger votre package Python sur PyPi afin qu’il soit disponible pour tous les utilisateurs Python. Je vais utiliser un exemple réel de bout en bout afin que toutes les étapes soient limpides.

Créer un projet Python simple

Remarque : Si vous avez déjà un projet en cours d’exécution, vous passez à la partie suivante.

Maintenant, juste pour publier un package, certains développeurs choisissent de créer leurs propres packages et de s’assurer qu’ils fonctionnent parfaitement. C’est aussi une option valable. Cependant, Pypi n’est pas trop préoccupé par la qualité des packages qu’ils autorisent sur leur site. Cela signifie que vous pouvez littéralement télécharger n’importe quoi, même si c’est quelque chose de particulièrement inutile. Pourquoi quelqu’un voudrait-il faire ça ? Eh bien, parce qu’ils le peuvent!

Ce didacticiel utilise un projet simple nommé example_package. Nous vous recommandons de prendre le temps de parcourir ce tutoriel avant de penser à votre propre projet.

Pour créer un package, créez un dossier nommé exactement comme vous voulez que votre package soit nommé. Créez ensuite la structure de fichiers suivante sur votre système :

pypi_tutorial
└── src
    └── example_package
        ├── example.py
        └── __init__.py

init.py est le fichier requis pour importer le répertoire en tant que package. Il servait à marquer les classes auxquelles vous vouliez que l’utilisateur accède. Il devrait être vide pour le moment.

example.py est un exemple de module, dans le package qui contiendrait la logique de votre package, c’est-à-dire des fonctions, des classes, des constantes, etc. Vous pouvez ajouter ce que vous voulez ici, que ce soit un programme hello world ou autre chose. Ici, je vais créer une calculatrice comme un programme :

def add_one(number):
    return number + 1

Créer le package

Après avoir créé les fichiers ci-dessus, nous allons maintenant ajouter des fichiers qui sont utilisés pour préparer le projet pour la distribution. Cd dans le dossier du projet pypi_tutorial, et exécutez la commande suivante :

#Linux/Mactouch LICENSE setup.cfg README.md pyproject.tomlmkdir tests
#Windowscd . > LICENSEcd . > setup.cfgcd . > README.mdcd . > pyproject.tomlmkdir tests

Votre répertoire de projet devrait ressembler à ceci lorsque vous avez terminé :

.
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.cfg
├── src
│   └── example_package
│       ├── example.py
│       └── __init__.py
└── tests

Configuration des outils de construction

pyproject.toml est comme un livre de recettes utilisé par les boulangers sur leur lieu de travail. Il contient toutes les informations nécessaires à la réalisation de votre projet (y compris les bibliothèques, les modules, etc.). Puisque nous utilisons Setuptools et wheel dans le projet que nous avons créé ci-dessus, nous allons démontrer l’utilisation de cette bibliothèque. Ajoutez le code suivant à pyproject.toml :

[build-system]
requires = [
    "setuptools>=42",
    "wheel"
]
build-backend = "setuptools.build_meta"

requiert nous aide à spécifier les packages nécessaires à la construction de votre package.

build-backend est l’objet Python qui effectuera la construction. Si vous deviez utiliser un système de construction différent, ceux-ci iraient ici.

Configuration des métadonnées

Il existe deux types de métadonnées : Statique, qui est stockée dans setup.cfg. Comme il l’indique, il est statique et ne change pas selon les situations, mais à son tour, garantit d’être le même à chaque fois. Les métadonnées dynamiques sont stockées dans le fichier setup.py et fonctionnent exactement dans le sens inverse. Nous utiliserons la méthode statique juste pour des raisons de simplicité.

Now Open setup.cfg and paste the following code:
[metadata]
name = pypi-tutorial-package
version = 0.0.1
author = Paper
author_email = papersharma675gmail.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url =
project_urls =
    Bug Tracker =
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent

[options]
package_dir =
    = src
packages = find:
python_requires = >=3.6

[options.packages.find]
where = src

Il s’agit d’un fichier de configuration de base par tous les moyens pour un paquet. La première chose que vous devez faire ici est de changer les détails en fonction de votre projet, c’est-à-dire changer le nom, l’auteur, l’e-mail, la description, la version Python requise, etc. Après cela, si vous voulez encore plus de personnalisation ou regardez autour de vous, que pouvez-vous ajouter ici vous pouvez consulter les docs setuptools de Pypa ou les analyseurs de configuration.

Création de README & LICENSE

Remarque : L’ajout de ces deux fichiers est important. Ne sautez pas ça!

Maintenant, cette étape est assez explicite, ajoutez simplement les instructions ou les notes que vous souhaitez présenter à l’utilisateur de votre package dans le fichier README.md.

Il est également vital que chaque paquet téléchargé sur le PyPI ou n’importe où d’ailleurs inclue une licence. Cela informe les utilisateurs qui installent votre package des conditions sous lesquelles ils peuvent utiliser votre package. Si vous souhaitez de l’aide pour décider quelle licence choisir, visitez ce site Web https://choosealicense.com/.

Génération d’archives de distribution

Ensuite, pour la distribution de notre projet, nous devons générer des archives de distribution. Ces archives sont les fichiers réels qui seront téléchargés sur le Pypi et peuvent ensuite être installés par pip.

Pour ce faire, assurez-vous d’abord qu’une version sûre de pip est installée sur votre système :

python3 -m pip install --upgrade build

Ensuite, allez dans le répertoire du projet, pypi_tutorial, où se trouve pyproject.toml et exécutez cette commande :

python3 -m build

Et si cela a fonctionné avec succès, vous devriez obtenir un résultat comme celui-ci :

Comme vous pouvez le voir, il a généré deux fichiers et ces deux sont nos archives ! Le fichier tar.gz est une archive source alors que le fichier .whl est une distribution construite. Vous pouvez les localiser dans le dossier dist nouvellement créé.

Téléchargement des archives

Maintenant, pour télécharger notre projet sur Pypi, vous devrez créer un compte sur Pypi pour télécharger un package. Pour ce tutoriel, j’utiliserai TestPyPI qui est une instance distincte de Python conçue pour tester et expérimenter des projets comme celui-ci. Allez simplement sur leur page d’inscription et remplissez le forum et suivez le processus.

Remarque : même si vous souhaitez télécharger votre archive dans l’index réel, vous pouvez suivre exactement le même processus.

Maintenant que vous avez créé et activé votre compte, nous pouvons commencer le processus de téléchargement. Tout d’abord, nous aurons besoin de jetons API, pour les obtenir, allez en bas de la page des paramètres de votre compte et cliquez sur le bouton Ajouter un jeton API.

Ici, entrez le nom de jeton que vous souhaitez et sélectionnez l’étendue du compte entier (tous les projets), puis cliquez sur Ajouter un jeton

À partir de là, enregistrez le jeton dans un endroit sûr car il ne sera affiché qu’une seule fois.

Maintenant que nous sommes enfin enregistrés, nous pouvons utiliser la ficelle pour télécharger nos archives. Vous pouvez installer la ficelle avec :

python3 -m pip install --upgrade twine

Après cela, exécutez twine pour télécharger les deux archives sous dist :

python3 -m twine upload --repository testpypi dist/*

Et s’il fonctionnait avec succès, vous obtiendriez un résultat comme celui-ci :

Ici, comme vous pouvez le voir, le projet est créé et est disponible ici https://test.pypi.org/project/pypi-tutorial-package/0.0.1/. Vous pouvez maintenant le visiter et l’installer !

Tester le paquet nouvellement téléchargé

Vous pouvez maintenant utiliser pip pour installer votre package et vérifier qu’il fonctionne. Exécutez simplement la commande sur votre terminal ou cmd :

pip install -i https://test.pypi.org/simple/ pypi-tutorial-package==0.0.1

La sortie ressemblerait à ceci :

Maintenant, faisons quelques tests avec. Ouvrez l’interpréteur Python et exécutez les commandes suivantes :

python3

Importez ensuite le package :

from example_package import example
example.add_one(2)

Si vous exécutez ceci, vous obtiendrez des résultats comme celui-ci:

Letzte Worte

Dans cet article, nous avons suivi les étapes pour télécharger votre premier package Python sur PyPI. Ce fut un bon début pour nous d’apprendre comment télécharger notre premier package Python sur PyPI. Il y a encore beaucoup de choses que nous devons comprendre en cours de route. Il s’agit d’un moyen simple de créer votre package par vous-même. Si vous avez des questions, n’hésitez pas à laisser un commentaire ci-dessous, et je me ferai un plaisir d’y répondre. Merci d’avoir lu!