Déployer Un Package sur PyPi

Programming
395 mots

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 :
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

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é)

[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) :

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

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 :

twine upload -u __token__ -p TON_JETON dist/*

5. Tester l'Installation

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

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 :

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

    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 :

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é).

Déployer Un Package sur PyPi

Déployer Un Package 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 :
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

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é)

[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) :

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

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 :

twine upload -u __token__ -p TON_JETON dist/*

5. Tester l'Installation

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

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 :

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

    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 :

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é).

Commentaires

0/500 caractères

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