py2exe ****** le module py2exe permet de créer, sous Windows, des executables au format .exe. Très utile pour permettre à l'utilisateur d'executer votre programme même s'il ne posède pas d'interpreteur Python installé sur sa machine. Utilisation de Py2exe ===================== Cet article à été initialement posté sur mon blog consacré à Python, (Essentiellement ses modules externes) consultable à l'adresse http:\\www.jbjweb.com/python La première chose à faire est bien entendu de télécharger le module sur le site http:\\www.py2exe.org et de l'installer sur votre ordinateur. Prenez soin de prendre la version correspondante à votre version de Python. Nous allons construire un executable ensemble pour vérifier que tout fonctionne: Fichier "test.py": .. code-block:: python print "Voici un fichier executable py2exe" raw_input() Enregistrez le fichier dans le répertoire ou est installé Python (par exemple "C:\Python24") Nous avons maintenant besoin de créer un fichier appellé setup.py, qui permettra la compilation: Fichier "setup.py": .. code-block:: python from distutils.core import setup import py2exe setup(console=["test.py"]) Enregistrez ce script dans le répertoire ou est installé Python (par "C:\Python24") Notez que dans le cas ou vous souhaiteriez compiler un programme muni d'une interface graphique (Tkinter, Gtk, etc) il vous faudra remplacer la ligne .. code-block:: python setup(console=["test.py"]) par: .. code-block:: python setup(windows=["test.py"]) Une fois que ce fichier est enregistré, ouvrez l'invite de commandes (Démarrer, Executer, cmd) et déplacez vous à l'aide de la commande "cd" jusqu'au dossier ou vous fichiers sont enregistrés.(Dans notre exemple, "C:\Python24") Une fois dans le dossier, saisissez: .. code-block:: bash python.exe setup.py py2exe Un nombre assez conséquent d'informations relative à la compilation seront affichés sur la console. Patientez. A l'issu de la compilation, si tout s'est bien passé, deux répertoires auront été crées dans le dossier "c:\Python24": dist et build. Le dossier "build" ne sers que lors de la construction de l'executable, vous pouvez le supprimmer. Le dossier "dist", quand à lui, contient votre executable ainsi que les fichiers requis pour son fonctionnement. Quelques exemples: ================== Joindre une icone pour votre programme -------------------------------------- .. code-block:: python from distutils.core import setup import py2exe setup(name="nomDuProgramme", version="1.0", description="Description du programme", author="Vous", windows = [ { "script": "programme.py", "icon_resources": [(1, "votreIcone.ico")] } ],) Compiler un programme utilisant le module PIL --------------------------------------------- Lorsque j'ai voulu compiler un programme utilisant le module PIL, je me suis heurté à de nombreuses erreurs. En fouillant un peu, j'ai pu trouver une solution: .. code-block:: python from distutils.core import setup import py2exe import Image import JpegImagePlugin Image._initialized=2 setup(name="nomDuProgramme", version="1.0", description="Description du programme", author="Vous", windows = [ { "script": "programme.py", "icon_resources": [(1, "icone.ico")] } ],) Compiler un programme comportant un exe console + icone ------------------------------------------------------- .. code-block:: python from distutils.core import setup import py2exe import fao setup(name="pysync", version="0.2", description="synchronisation between src and dst", author="Frederic Aoustin", console = [ { "script": "pysync.py", "icon_resources": [(1, "img/ico.ico")] } ],) Compiler un gui et un exe console --------------------------------- .. code-block:: python from distutils.core import setup import py2exe import fao import fao.colorconsole import fao.ftk setup(name="pysync", version="0.4", description="synchronisation between src and dst", author="Frederic Aoustin", console = [ { "script": "pysync.py", "icon_resources": [(1, "img/ico.ico")] }], windows = [ { "script": "gui.py", "icon_resources": [(1, "img/ico.ico")] } ],) .. note:: Il faut noter qu'il faut pour créer un installateur avec ces fichiers compilés utiliser un outil externe comme innosetup (par exemple) .. attention:: py2exe n'est pas compatible python 3 !!!