Table des matières

Création d'exécutables en python

Python est un langage interprété. Cela signifie que le code source est lu à l'exécution, et les instructions exécutées au moment de leur lecture.\ Il y a des avantages, notamment la flexibilité et la rapidité du passage écriture du code → exécution car on s'affranchit de l'étape compilation.\ Il y a aussi des inconvénients, notamment la rapidité d'exécution, notoirement plus lente que pour du code compilé. Un autre inconvénient est qu'il est nécessaire d'avoir un interpréteur Python installé sur le système où on souhaite exécuter le programme. Enfin, si on distribue un script

Gagner en vitesse d'exécution

On a dit que l'interprétation de code est plus lente à l'exécution que le code compilé. On peut nuancer ce propos car des astuces existent.

Wrapper

De nombreux modules (comme numpy, pandas, scipy …) sont en réalité codés en C (et donc compilés), et le module python accessible n'est qu'un wrapper. Ainsi, les calculs lourds sont réalisés en C/C++. Cela permet à des modules comme datashader ou pandas d'être rapides en manipulant des quantités très importantes de données.

Compilation JIT

Il existe aussi la compilation à la volée (Just In Time), qui vise à créer du code compilé à partir du python lors de la première exécution du script. On citera numba que j'utilise régulièrement.\ La première exécution est plus lente (normal, il faut compiler), mais les suivantes sont plus rapides. Cela se prête bien à des boucles ou un calcul lourd qui n'a pas pu être fait dans un module de bas niveau style numpy.

Création d'un exécutable compilé

Certains outils permettent de créer un exécutable (type .exe) compilé en partant d'un script Python. On gagne en théorie en vitesse d'exécution, mais la création de l'exécutable est plus compliquée et nécessite un compilateur C installé…

Parmi ces outils, on notera :

Exécuter sans interpréteur python

Cela peut-être intéressant pour un déploiement sur des machines windows, sans interpréteur python.\ On a le choix d'utiliser un outil qui compile (voir paragraphe précédent), mais il existe aussi des outils qui empaquètent : ils fournissent un interpréteur python et le script python. L'interpréteur python peut être installé en dur sur l'os, ou juste en portable. Il est également possible de tout mettre dans un unique fichier exécutable, c'est plus facile pour déployer.

Parmi ces outils, on notera :

Protéger son programme

bientôt disponible