Comment créer des packages Python [2023]
Selon une étude de Stackoverflow datant de 2023, Python se positionne comme le troisième langage de programmation le plus répandu. Sa polyvalence lui permet d'être utilisé dans divers domaines tels que la science des données, le développement web, l'apprentissage automatique, l'ingénierie logicielle et le calcul scientifique.
Lorsque vous commencez à explorer et à utiliser Python, vous rencontrerez fréquemment le terme "package Python". Mais qu'est-ce qu'un package Python exactement, et comment peut-on en créer un ?
Cet article a pour but de :
- Définir ce que sont les packages Python.
- Mettre en lumière l'importance des packages Python dans le développement.
- Présenter la méthode de création de packages Python.
- Illustrer l'utilisation et le test de packages Python.
- Expliquer comment télécharger des packages Python.
Définition des Packages Python
Les packages Python constituent un élément crucial de la programmation. Sans eux, les développeurs seraient contraints d'écrire tout le code à partir de zéro, rendant le processus de développement extrêmement long et ardu. Les packages Python sont en réalité des ensembles de modules Python, c'est-à-dire des regroupements de code réutilisable.
Un module Python est un fichier contenant du code Python qui peut être importé dans d'autres programmes Python. Pour structurer un package Python, le code doit être stocké dans un répertoire contenant un fichier nommé `__init__.py`.
Un package Python peut contenir d'autres packages (imbrication), et un vaste choix de packages Python est disponible en ligne. Certains sont officiels, tandis que d'autres ne le sont pas. La plupart de ces packages peuvent être trouvés sur https://pypi.org/.
Par exemple, Django, un framework web Python, est un package que vous pouvez utiliser pour développer des applications web. Des packages comme Scikit-learn, PyTorch et TensorFlow sont couramment utilisés dans le domaine de l'apprentissage automatique.
L'intérêt des Packages Python

Pourquoi ne pas créer chaque élément de code soi-même en tant que programmeur ? Est-il vraiment nécessaire d'utiliser des packages Python ? Voici quelques raisons qui soulignent l'importance des packages Python :
- Gain de temps : Les packages Python donnent accès à du code déjà écrit qui résout des problèmes courants. Au lieu de réinventer la roue à chaque fois, vous pouvez utiliser ces packages pour écrire vos scripts Python plus rapidement.
- Facilitation de la diffusion de code : La collaboration est monnaie courante en programmation. Vous pouvez structurer votre code en packages Python que les membres de votre équipe peuvent facilement importer lors de projets collaboratifs.
- Réutilisabilité du code : Si un bloc de code revient fréquemment dans vos programmes, vous pouvez le regrouper en package et l'importer dans vos différentes applications.
- Organisation du code : Les packages Python permettent d'organiser votre code en modules logiques, ce qui facilite la lecture et la maintenance de vos projets Python.
Création de votre Premier Package Python

Python étant un langage à usage général, vous pouvez créer divers types de packages. Par exemple, vous pourriez créer un package pour automatiser certaines tâches, un autre pour vous aider à gérer votre budget ou encore un package pour l'apprentissage d'une langue. Toutefois, avant de commencer la création de votre premier package, vous devez vous assurer d'avoir les éléments suivants :
Prérequis :
- Python installé sur votre machine. Sous Linux, Python est généralement installé par défaut. Vous pouvez utiliser les commandes `python --version` ou `python3 --version` pour vérifier si Python est présent. Si c'est le cas, vous devriez voir une réponse similaire dans votre terminal :

Si Python n'est pas installé, vous pouvez le télécharger sur https://www.python.org/downloads/.
- Bonne compréhension de Python : Vous devez maîtriser l'écriture de classes, de modules et de fonctions Python.
- Un gestionnaire de packages. Pour cette démonstration, nous allons utiliser `pip`. Vous pouvez vérifier son installation en utilisant la commande :
pip --version
Si pip est installé, une réponse semblable à celle-ci devrait apparaître dans votre terminal :

Les exigences peuvent varier en fonction du type de package que vous souhaitez créer.
Pour cette démonstration, je vais créer un package simple qui teste si un nombre est premier. Voici les étapes à suivre :
- Première étape : Créez un dossier pour le projet. Je vais le nommer "primechecker".
- Deuxième étape : Dans le dossier "primechecker", créez un autre dossier et nommez-le "prime".
- Troisième étape : Dans le dossier "prime", créez un fichier et nommez-le "prime.py". Vous pouvez combiner ces trois étapes en utilisant cette commande :
mkdir primechecker && cd primechecker && mkdir prime && cd prime && touch prime.py
- Quatrième étape : Ouvrez votre projet dans votre éditeur de code et ajoutez le code suivant au fichier "prime.py". Ce code va vérifier si un nombre est premier :
def is_prime(number):
if number < 2:
return False
for i in range(2, int(number ** 0.5) + 1):
if number % i == 0:
return False
return True
- Cinquième étape : Dans le dossier principal ("primechecker"), créez un fichier nommé `__init__.py`. Ce fichier permet à Python de reconnaître le dossier comme étant un package. Vous pouvez utiliser cette commande :
touch prime/__init__.py
- Sixième étape : Testez votre code. Pour cela, créez un fichier nommé "test.py" dans le dossier racine et ajoutez le code suivant :
from prime.prime import is_prime
number = int(input("Enter a number: "))
result = is_prime(number)
print(f"{number} is prime: {result}")
Ensuite, utilisez cette commande pour exécuter le test :
python3 test.py
Vous pouvez maintenant entrer un nombre et vérifier s'il est premier.
Par exemple, en testant 5 et 1, j'ai obtenu les résultats suivants :

Mise en Ligne de votre Package
Vous pouvez héberger le package que vous venez de créer sur PyPI (Python Package Index), le référentiel central pour les packages Python. Rendez-vous sur https://pypi.org/ et créez un compte si vous n'en avez pas encore.
Voici les étapes à suivre pour mettre votre package en ligne :
- Étape 1 : Créez un fichier nommé `setup.py` à la racine de votre projet ("primechecker").
- Étape 2 : Modifiez le contenu du fichier `setup.py` en y ajoutant les informations concernant votre package.
Le code de ce fichier devrait ressembler à ceci :
from setuptools import setup, find_packages
setup(
name="primechecker",
version='1.0.0',
author="Your Name",
author_email="[email protected]",
description='A package for checking prime numbers',
packages=find_packages(),
)
N'oubliez pas de personnaliser le nom, l'auteur, l'adresse e-mail et la description avec les informations correspondant à votre package.
- Étape 3 : Construisez votre package. Exécutez cette commande dans le dossier racine :
python3 setup.py sdist bdist_wheel
Si vous vérifiez votre dossier, vous devriez voir deux nouveaux dossiers apparaitre, "build" et "dist".
- Étape 4 : Installez "twine". C'est un outil qui permet de télécharger des packages sur PyPI. Utilisez cette commande :
pip install twine
- Étape 5 : Téléchargez le package.
Utilisez cette commande :
twine upload dist/*
Vous serez invité à saisir votre nom d'utilisateur et votre mot de passe. Si le nom de votre package n'est pas déjà utilisé, il sera mis en ligne et vous recevrez un lien sur votre terminal.

Votre package est désormais accessible au public et quiconque souhaite l'utiliser peut le télécharger via `pip`. Par exemple, mon package peut être téléchargé comme ceci :
pip install primechecker==1.0.0.

Conseils pour Créer des Packages Python Efficaces
- Respectez les normes d'empaquetage Python : Bien que vous soyez libre de choisir le type de package que vous souhaitez créer, gardez à l'esprit que les packages Python sont soumis à des normes précises. Consultez ces normes sur https://packaging.python.org/ avant d'écrire votre code.
- Testez votre package avant de le déployer : Les erreurs sont fréquentes en programmation. Il est donc important de créer des scripts pour générer des tests automatisés, en particulier pour les packages volumineux. Cela permet de s'assurer que les packages que vous publiez sont exempts de bugs.
- Gestion des versions : Un bon package doit respecter la gestion sémantique des versions. Par exemple, le package que j'ai créé porte le numéro `1.0.0`. Le premier chiffre (1) représente la version majeure, le deuxième (0) la version mineure et le dernier la version de correction.
- Spécifiez toutes les dépendances : Votre package peut avoir des dépendances, c'est-à-dire des packages qu'il utilise. Vous devez mentionner toutes ces dépendances dans la description de votre package lors de la mise en ligne. Des outils comme `setuptools` ou `poetry` peuvent vous aider à ajouter et gérer ces dépendances.
- Utilisez le contrôle de version : La programmation est un processus continu. Vous pouvez améliorer votre package en ajoutant de nouvelles fonctionnalités ou en le rendant plus performant. Vous pouvez également inviter des collaborateurs à contribuer. Il est donc recommandé de mettre votre code sur des plateformes comme GitHub ou GitLab pour faciliter l'accès et la collaboration.
- Documentez votre code : Le package que nous avons créé était à des fins de démonstration. Cependant, si vous souhaitez partager votre package avec le public ou avec des membres de votre équipe, il est nécessaire de générer une documentation claire pour guider les utilisateurs. Des outils tels que `Pydoc` ou `Sphinx` peuvent vous aider à créer cette documentation.
Autres Plateformes pour la Diffusion de Packages Python
Bien que PyPI (Python Package Index) soit le référentiel officiel, cela ne signifie pas que vous ne pouvez pas utiliser d'autres options. Les facteurs à prendre en compte pour choisir une plateforme de diffusion sont la taille des fichiers, la nature du package, le niveau de support requis et votre public cible.
Voici quelques autres plateformes pour diffuser vos packages Python :
- GitHub : C'est la plus grande plateforme d'hébergement de code. Vous pouvez créer un référentiel et y ajouter votre package Python sous forme de fichier zip pour le redistribuer.
- Conda : Conda est un gestionnaire de packages couramment utilisé, notamment par les data scientists. Vous pouvez créer un compte sur Conda et y diffuser vos packages.
- Miroirs PyPI : De nombreux miroirs PyPI reproduisent le contenu de la plateforme officielle. Choisissez celui qui répond le mieux à vos besoins pour héberger votre package.
Conclusion
Vous connaissez maintenant les étapes nécessaires pour créer un package Python et le publier en ligne. L'exemple présenté ici était basique, mais vous pouvez explorer des packages beaucoup plus complexes. N'oubliez pas l'importance d'une structure de dossiers bien organisée lors de la création de vos packages Python.