Construire et distribuer votre package
Maintenant que nous avons créé un package Python avec des fichiers supplémentaires et confirmé que nous pouvons y accéder, apprenons à construire et à distribuer ce package.
Mise à jour du script de configuration
Avant de construire le package, mettons à jour notre fichier setup.py pour inclure plus de métadonnées et de dépendances :
cd ~/project
cat > setup.py << 'EOF'
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1.0",
packages=find_packages(),
## Include data files
package_data={
"mypackage": ["config.ini", "data/*.txt"],
},
## Dependencies
install_requires=[
"setuptools",
],
## Metadata
author="Your Name",
author_email="your.email@example.com",
description="A simple Python package with additional files",
keywords="sample, package, data",
url="https://example.com/mypackage",
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
],
python_requires=">=3.6",
)
EOF
Construction des distributions source et wheel
Les packages Python peuvent être distribués dans plusieurs formats, mais les plus courants sont :
- Distribution source (sdist) : Une archive tar contenant le code source et les fichiers supplémentaires
- Distribution wheel (bdist_wheel) : Un package pré-construit qui peut être installé sans construction
Construisons les deux types de distributions :
## Assurez-vous d'avoir les derniers outils de construction
pip install --upgrade setuptools wheel
## Construire les distributions
python setup.py sdist bdist_wheel
Vous devriez voir une sortie indiquant que les distributions ont été créées, et de nouveaux fichiers devraient apparaître dans le répertoire dist.
Vérifions le contenu du répertoire dist :
ls -l dist
Vous devriez voir au moins deux fichiers :
- Un fichier
.tar.gz (la distribution source)
- Un fichier
.whl (la distribution wheel)
Installation du package à partir des fichiers de distribution
Maintenant, testons l'installation du package à partir de l'un des fichiers de distribution. Tout d'abord, désinstallons notre version de développement :
pip uninstall -y mypackage
Maintenant, installons la distribution wheel :
pip install dist/mypackage-0.1.0-py3-none-any.whl
Vous devriez voir une sortie indiquant que le package a été installé avec succès.
Vérifions que le package est installé et que nous pouvons toujours accéder aux fichiers supplémentaires :
python -c "import mypackage; print(mypackage.read_config())"
Cela devrait afficher le contenu du fichier config.ini :
[config]
debug = true
log_level = INFO
Publication de votre package
Dans un scénario réel, vous publieriez généralement votre package sur l'index des packages Python (PyPI) afin que d'autres puissent l'installer en utilisant pip install mypackage. Cela impliquerait :
- Créer un compte sur PyPI (https://pypi.org/)
- Utiliser des outils comme
twine pour télécharger vos distributions :pip install twine
twine upload dist/*
Cependant, pour ce lab, nous nous arrêterons à la création des distributions localement. Vous avez maintenant un package Python complet avec des fichiers supplémentaires qui peuvent être distribués et installés par d'autres.
Résumé de ce que vous avez créé
- Un package Python avec des modules et des fichiers supplémentaires
- Un script de configuration qui inclut ces fichiers dans la distribution
- Des fonctions pour accéder à ces fichiers depuis votre code
- Des fichiers de distribution source et wheel prêts pour la distribution
Cette structure fournit une base solide pour tout package Python que vous pourriez vouloir créer à l'avenir.