Convertir des projets python en .exe

tags: python

2 centimes sur ces conneries de cx_freeze, pyInstaller et compagnie...

Python est comme Java, c'est un langage multiplate-forme qui fonctionne sur tous les systèmes dotés d'un interpréteur Python. Sur les systèmes Linux/UNIX il est directement installé. Sur Windows, un utilisateur sera automatiquement redirigé sur le Windows Store pour installer l'interpréteur s'il lance un .py. Pouvoir exécuter du python sur son système n'est donc pas un problème.

Question distribution maintenant, vous êtes nombreux à avoir développer des petites applications et voulez les partager autours de vous. Oubliez ces .exe moche, dans la tête de tout le monde, un .exe ça contient un virus. Vous êtes peut-être trop jeune pour avoir connue cette passoire de Windows XP mais je peux vous assurer qu'à l'époque on évitait soigneusement d'exécuter n'importe quel logiciel venant d'internet comme ça. Vos .exe ils contiennent aussi un interpréteur complet, vous connaissant vous avez grand max 5 fichiers et 2000 lignes de code, c'est rien comparé à la taille de l'interpréteur et de toute la bibliothèque standard. Vraiment vous polluez le système à faire comme ça.

Il existe pourtant une alternative simple, gratuite et efficace. Vous l'avez déjà utilisé pour installer des bibliothèques comme requests, pygame, numpy et j'en passe mais savez-vous que vous pouvez également y faire héberger et distribuer vos propres projets ?! PyPI (Python Package Index) est le site officiel où sont publiés et distribués toutes les bibliothèques installable avec pip. Vous pouvez y faire héberger vos propres projets, ils ont full documentation sur comment structurer vos projets, comment les packager et comment les distribuer efficacement. D'ailleurs si vous êtes comme moi et préférez ne pas polluer internet avec vos conneries, vous pouvez également héberger votre propre index (exemple: https://pypi.drlazor.be/).

Faire des packages est la meilleure manière de distribuer votre code, je vous laisse la doc :

Si néanmoins vous avez vraiment besoin de faire un exécutable pour Windows, j'ose poser la question : pourquoi est-ce que vous avez choisi d'utiliser Python. Utiliser une technologie (ici Python) qui n'est pas du tout adapté à vos besoins (ici faire des exécutable) n'est pas ce que j’appellerais développer en respectant une bonne éthique professionnel. Intéressez-vous à Go, c'est un langage similaire à Python et il vous fera des exécutables sans problème.

Si néanmoins vous avez vraiment besoin de faire un exécutable pour Windows et n'avez aucune déontologie. Préférez utiliser nuitka. Nuitka est un compilateur pour Python, il compile le code source en pure exécutable. Les autres projets (cx_freeze, ...) ne font que mettre votre code et l'interpréteur python dans un .exe.