99% des principaux paquets Python sont maintenant des wheels, ce qui rendra plus rapide l'installation pour les paquets purement Python.

Python wheel est un format de paquetage binaire préconstruit pour les modules et les bibliothèques Python. Elles sont conçues pour faciliter l'installation et la gestion des paquets Python, en fournissant un format pratique à fichier unique qui peut être téléchargé et installé sans qu'il soit nécessaire de compiler le paquet à partir du code source.

Wheels, c'est quoi ?

Wheel est le nouveau standard des distributions Python et sont destinées à remplacer les œufs. Elles sont supportées par pip >= 1.4 et setuptools >= 0.8.


Avantages des wheels

  1. Installation plus rapide pour les paquets purement Python et les paquets d'extension en C natif.
  2. Evite l'exécution de code arbitraire lors de l'installation. (évite setup.py)
  3. L'installation d'une extension C ne nécessite pas de compilateur sous Linux, Windows ou macOS.
  4. Permet une meilleure mise en cache pour les tests et l'intégration continue.
  5. Crée des fichiers .pyc lors de l'installation pour s'assurer qu'ils correspondent à l'interpréteur Python utilisé.
  6. Installations plus cohérentes entre les plateformes et les machines.

Pythonwheels.com

Ce site montre les 360 paquets les plus téléchargés sur PyPI, qui ont été téléchargés en tant qu'archives wheels.

  • Les paquets verts offrent des wheels,
  • Les paquets blancs n'ont pas (encore !) d'archives wheels téléchargées.

Les paquets qui sont connus pour être obsolètes ne sont pas inclus. La liste sur le site affichait auparavant les paquets les plus téléchargés de tous les temps (All-time list). Mais cette All-time list n'est plus disponible, et les paquets de la liste des 30 derniers jours changeront pour refléter plus fidèlement ce que la communauté Python utilise.

Nom : 1.png
Affichages : 108573
Taille : 7,5 Ko

Il ne s'agit pas du site officiel de wheels, mais d'un moyen visuel agréable de mesurer l'adoption.

Mon paquet est blanc. Que puis-je faire ?

Python pur

Si vous avez un paquetage purement Python qui n'utilise pas 2to3 pour le support de Python 3, c'est facile. Assurez-vous que Wheel est installé...


...et lorsque vous lancez normalement python setup.py sdist, lancez à la place python setup.py sdist bdist_wheel.

Note : Si votre projet est compatible avec Python 2 et 3, vous pouvez créer une distribution de wheels universelle. Créez un fichier appelé setup.cfg avec le contenu suivant et téléchargez votre paquet.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[bdist_wheel]
universal = 1

Attention : Si votre projet possède des extensions C optionnelles, il est recommandé de ne pas publier de roue universelle, car Pip préférera la wheel à l'installation des sources.

Note : Pour inclure le fichier de licence de votre projet dans la distribution wheel, spécifiez la clé license_files dans la section [metadata]. Cela permet de se conformer à de nombreuses licences open source qui exigent que le texte de la licence soit inclus dans chaque artefact distribuable du projet. Cette option nécessite la version 0.32 de wheel ou une version plus récente.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[metadata]
license_files = LICENSE


Extensions C

PyPI permet actuellement de télécharger des wheels spécifiques à une plateforme pour Windows, macOS et Linux. Il est utile de créer des wheels pour ces plateformes, car cela évite à vos utilisateurs d'avoir à compiler le paquet lors de l'installation.

Source : pythonwheels.com

Et vous ?

Quel est votre avis sur ce changement ?

Voir aussi :

PyCharm : la version 2023.2 de l'EDI Python disponible
Avec de nouveaux modèles dynamiques pour Django, l'intégration du formateur Black et bien plus


Microsoft vient d'annoncer les améliorations Juillet 2023 de l'extension Python pour Visual Studio Code

Python 3.12.0b1, la première des quatre versions bêta de la 3.12, a été publiée
Et apporte de nouvelles fonctionnalités ainsi que des corrections de bogues