68a256f3c43b19024fdba265

Créer un module Python sur PyPi

Oxelya
23 août 2025
0 vues
0 commentaires
0.0/5 (0 votes)

Vous installiez des modules avec pip, maintenant vous allez créer les vôtres. Package Python sur mesure.

Créer un module Python sur PyPi

Introduction

Ce guide explique comment préparer, construire et publier un package Python sur PyPI en utilisant twine et build qui sont eux aussi des package déployés sur PyPi mdrr. Ducoup on va voir ça plus en détail


1. Prérequis

Avant de commencer, assure-toi d'avoir :

  • Python 3.6 ou supérieur installé
  • pip, setuptools, twine et build installés :
bash
pip install --upgrade pip setuptools twine build

2. Structure d'un Projet

Un package Python typique doit avoir la structure minimale suivante :


mon_package/
│── mon_package/
│   ├── __init__.py
│   ├── main.py
│── tests/
│   ├── test_main.py
│── setup.py
│── pyproject.toml
│── README.md
│── LICENSE

Exemple de setup.py

python
from setuptools import setup, find_packages

setup(
    name="mon_package",  # Nom du package
    version="0.1.0",  # Version du package
    packages=find_packages(),  # Recherche automatique des sous-packages
    install_requires=[
        "scapy", # Dépendances requises
        "pyshark"
    ],
    entry_points={
        "console_scripts": [
            "mon_package=mon_package.capture:main"
        ]
    },
    author="margoul1",
    author_email="ton.email@example.com",
    description="Un outil de capture de paquets réseau en Python",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/ton-utilisateur/mon_package",
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires=">=3.6",
)

Exemple de pyproject.toml (optionnel mais recommandé)

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

3. Construire le Package

Exécute la commande suivante pour générer les fichiers de distribution (.tar.gz et .whl) :

bash
python -m build

Cela créera un dossier dist/ contenant :


dist/
├── mon_package-0.1.0-py3-none-any.whl
├── mon_package-0.1.0.tar.gz

4. Publier sur PyPI

Option 1 : Publication avec mot de passe

bash
twine upload dist/*

Tu seras invité à entrer ton nom d'utilisateur et ton mot de passe PyPI.

Option 2 : Publication avec un jeton API

Si tu utilises un jeton API, exécute :

bash
twine upload -u __token__ -p TON_JETON dist/*

5. Tester l'Installation

Une fois publié, vérifie que ton package est installable depuis PyPI :

bash
pip install mon_package

6. Tester sur TestPyPI avant Publication

Si tu veux tester avant de publier sur PyPI officiel, utilise TestPyPI :

  1. Publier sur TestPyPI :

    bash
       twine upload --repository testpypi dist/*
       
  2. Installer depuis TestPyPI :

    bash
       pip install --index-url https://test.pypi.org/simple/ mon_package
       

7. Mettre à Jour un Package

Si tu fais une mise à jour du package, incrémente la version dans setup.py, puis reconstruis et republie :

bash
python -m build
twine upload dist/*

Ton package est maintenant disponible sur PyPI et installable via pip install mon_package!

Conclusion

T'as maintenant ton package que les gens (ou toi) vont pouvoir installer depuis absolument partout bien joué. Si tu veux pousser le vice de l'automatisation tu peux le mettre sur github et configurer une Github Action ou sur Gitlab (Recommandé).

Noter cet article
Donnez votre avis sur cet article
Connectez-vous pour noter

Commentaires (0)

Connectez-vous pour ajouter un commentaire

Aucun commentaire pour le moment. Soyez le premier à commenter !