====== 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 : * ''Cython'' ===== 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 : * ''PyInstaller'' * ''cx_Freeze'' * ''py2exe'' ===== Protéger son programme ===== __bientôt disponible__