Developpez.com - Raspberry Pi

Le Club des Développeurs et IT Pro

Comment distribuez vous habituellement votre code Python ?

Le 2017-05-22 08:05:09, par deusyss, Expert éminent
Tout comme nombre d'autres langages, Python, à travers la PSF et les PEPs, essaie de mettre en place un ensemble d'outils, de process et de recommandations pour sa communauté. Ainsi, dans la continuité de son serveur de packages/modules, Pypi et bientôt Wharehouse, la PEP427 de 2012 a été émise.

Cette PEP vise à répondre à une demande continuelle, depuis plusieurs années, de la communauté: définir un format standard de distribution.

Le format ainsi définit, le "Wheel" (extension ".whl", vise à palier au défaut des formats préexistant (tarball, egg...) d'une façon très simple: un fichier par architecture (32/64 bits, OS...). Ce faisant, si le travail est plus complexe côté développeur, car il faut générer un fichier par architecture différente, le gain est indéniable pour l'utilisateur.

En effet, chaque fichier étant dédié à une architecture, il n'y a plus d'étape de compilation. L'installation consiste alors, en résumé, à une simple intégration de code dans le « site-packages » de Python, minimisant au maximum les erreurs d'installation (qui n'a jamais eu la moindre erreur à la compilation de lxml ??).

Fort de ce nouveau format, les packages les plus usités ont entamé et presque fini leur migration.

Et vous, de votre côté, comment distribuez-vous votre code ?
  • Format officiel Wheel
  • code seul sans setup.py
  • Code seul avec setup.py
  • egg
  • tarball
  • Paquet système (deb, rpm...)
  • Autre (précisez)


Pourquoi ce format ?
Quand pensez-vous migrer vers le format Wheel si ce n'est pas déjà fait ?
Quelles sont les raisons qui peuvent vous freiner dans cette migration ?
  Discussion forum
3 commentaires
  • tyrtamos
    Expert éminent
    Bonjour,

    Je diffuse rarement mes codes dans le public, sauf ceux qui sont disponibles sous forme de code Python sur mon site web.

    Quand au sein de l'association dans laquelle je participe (concours international de photos), je dois diffuser un programme Python à un utilisateur, je le fais sous forme de ".exe" pour Windows (obtenu avec cx_freeze), ce qui n'oblige pas à installer quoique ce soit sur son PC. Il m'est déjà arrivé de compléter le "exe" obtenu avec l'installeur innosetup, et ça marche bien.

    Pour la même utilisation au sein d'une association, il m'est aussi arrivé de diffuser un programme sur une clé USB avec les codes Python complétés par un Windows portable (actuellement winpython). Ça aussi, ça marche très bien.

    Mais c'est tout de même dommage que ces préoccupations de diffusion de programmes Python "autonomes" ne viennent pas de l'équipe éditrice de Python...
  • bistouille
    Membre confirmé
    Je l'ai jamais fait, mais si je devais le faire un jour (je crois pas que ça arrivera), ce serait un jeu, sans doute un clone, et je le proposerais même dans les sources (deb donc), après tout y'a bien des trucs très pourris qui sont disponibles dedans avec des codes affreux et des interfaces hideuses

    Mais des trucs bien comme par exemple solarwolf, un jeu fait avec pygame, certes jeu basique, mais sympa.

    Voilà, et c'est surtout pour faire remonter ce sujet que je poste
  • deusyss
    Expert éminent
    Je participe aussi un peu à mon propre sondage

    Côté perso, je code peu mais diffuse mes codes principalement au format wheel. Quelques cas, le code seul au format fichier py, quand il s'agit de donner un coup de main à gauche à droite.

    Côté pro, nous packageons au maximum en wheel pour faciliter le déploiement chez nos client, via un fichier requirement. Une partie de notre code est également compilée en executable. Nous fournissons également des deb, à la demande, pour Linux.