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
- Installation plus rapide pour les paquets purement Python et les paquets d'extension en C natif.
- Evite l'exécution de code arbitraire lors de l'installation. (évite setup.py)
- L'installation d'une extension C ne nécessite pas de compilateur sous Linux, Windows ou macOS.
- Permet une meilleure mise en cache pour les tests et l'intégration continue.
- Crée des fichiers .pyc lors de l'installation pour s'assurer qu'ils correspondent à l'interpréteur Python utilisé.
- 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.
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é...
Code : | Sélectionner tout |
pip install wheel
...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 |
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 |
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