L’enfer du packaging Python
dans Bloc-notesPar Guillaume Ayoub (1, 2), organisé par CourtBouillon, Stella et l'AFPy. (via Meetup).
Support: sur courtbouillon.org
ou archive
Ce mois-ci, Guillaume vient nous parler de packaging Python !
🔥🎁🔥
Écrire du code en Python, c’est sympa. Vous êtes là, vous devez donc être un petit peu d’accord avec cela. Mais si, passée votre timidité, vous avez le courage de partager votre code avec les autres, alors vous voilà face à un problème de taille : le packaging. Vous cherchez tant bien que mal la documentation associée, vous trouvez nombre d’informations contradictoires, vous finissez après des heures d’effort sur d’obscurs forums au fin fond de la toile… 😢
👿 Mais pourquoi diable est-ce l’enfer de créer et partager des paquets Python ? 👿
Nous parlerons durant cette présentation de l’histoire du packaging Python, des nombreux problèmes rencontrés au fil de son existence, et des manières récentes et agréables de faire des paquets avec le sourire. 😁
Notes personnelles
- la méthode: usage des wheels
- code source => wheel (zip)
- PEP:
- PEP 427 – The Wheel Binary Package Format 1.0
- PEP 517 – A build-system independent format for source trees (architecture des pacquets)
- PEP 518 – Specifying Minimum Build System Requirements for Python Projects (
pyproject.toml
) - PEP 621 – Storing project metadata in
pyproject.toml
- PEP 660 – Editable installs for pyproject.toml based builds (wheel based) (intallation éditable)
- outillage de base
- adieu
distutils
setuptools
pour quelques rares cas particulierswheel
(pacquet)
build
peut utiliser des constructeurs de wheelpip
- WIP:
installer
(lire la wheel) hors BS, pour se passer installer
twine
pour publier sur PyPI
- adieu
- Outillage avancé
flit
moins vaste (juste des wheels) utilise tout les fichiers versionnéspoetry
très vaste- `…
- Condition un
pip
récent
Bonus : Origine du nom wheel