Introduction
Créer un package Python vous permet de structurer votre code, de le réutiliser dans d'autres projets, et surtout de le partager avec le monde entier via PyPI (Python Package Index). Que ce soit pour des outils internes, des bibliothèques open-source ou des modules personnels, savoir emballer, documenter et publier un package Python est une compétence précieuse.
Dans cet article, vous allez apprendre à créer un package Python, à le structurer correctement, à créer un fichier setup.py
, à le transformer en distribution, et enfin à le publier sur PyPI avec pip.
1. Créer la structure de base du package
Exemple de structure :
mon_package/
├── mon_package/
│ ├── __init__.py
│ └── outils.py
├── tests/
│ └── test_outils.py
├── README.md
├── setup.py
└── pyproject.toml
__init__.py
: rend le dossier importable comme module.outils.py
: votre code.setup.py
: métadonnées et instructions d'installation.README.md
: description affichée sur PyPI.pyproject.toml
: standard moderne pour la construction.
2. Écrire votre code Python
mon_package/outils.py
def bonjour(nom):
return f"Bonjour, {nom} !"
3. Ajouter un fichier init.py
mon_package/init.py
from .outils import bonjour
Cela permet d’utiliser :
from mon_package import bonjour
4. Créer le fichier setup.py
from setuptools import setup, find_packages
setup(
name='mon-package-demo',
version='0.1',
description='Un petit package de démonstration',
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
author='Votre Nom',
author_email='votre@email.com',
packages=find_packages(),
install_requires=[],
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License'
],
python_requires='>=3.6',
)
5. Ajouter pyproject.toml (optionnel mais recommandé)
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
6. Créer un fichier README.md
# Mon Package Demo
Un exemple de package Python simple.
7. Construire le package
Installez les outils de packaging si ce n’est pas déjà fait :
pip install setuptools wheel
Puis :
python setup.py sdist bdist_wheel
Cela génère les dossiers dist/
et build/
.
8. Publier sur PyPI
Étape 1 : créer un compte sur https://pypi.org
Étape 2 : installer Twine
pip install twine
Étape 3 : envoyer votre package
twine upload dist/*
On vous demandera vos identifiants PyPI. Si tout se passe bien, votre package est publié !
9. Tester votre package (optionnel)
Avant de publier sur le vrai PyPI, vous pouvez tester sur TestPyPI :
- Créez un compte sur https://test.pypi.org
- Puis :
bashCopierModifier
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Et installez avec :
pip install --index-url https://test.pypi.org/simple/ mon-package-demo
10. Mettre à jour votre package
Pour publier une nouvelle version :
- Modifiez le champ
version
danssetup.py
- Supprimez
dist/
etbuild/
si nécessaire - Reconstruisez et republiez avec Twine
Conclusion
Créer et partager votre propre package Python est un excellent moyen de structurer vos projets, de gagner du temps, et de contribuer à l’écosystème open-source. Grâce à setuptools
, twine
, et pip
, tout est prêt pour rendre vos idées accessibles au monde entier en quelques commandes seulement.