Py2Exe consente di trasformare uno script Python in un eseguibile Windows.
Per prima cosa è necessario installare il pacchetto py2exe
$ pip install py2exe
All'indirizzo http://aka.ms/vcpython27 scaricare il pacchetto del compilatore C++ per python2.7 poi installare py2exe come segue
$ pip install http://sourceforge.net/projects/py2exe/files/latest/download?source=files
Solitamente, per mantenere un certo grado di pulizia, tendo a creare una cartella py2exe sotto la cartella del progetto. All'interno di detta cartella creerò la cartella Redist dove verrà copiato l'eseguibile finale e gli eventuali files di configurazione.
Nella cartella py2exe creo il file setup.py che contiene le informazioni relative all'eseguibile da generare
from distutils.core import setup import py2exe, sys import os sys.argv.append('py2exe') setup( name = '<Executable Name>', description = '<Exe Description>', version = '<Your Version>', company_name = "<Your Company>", copyright = "<Your Copyright>", options = {'py2exe': {'bundle_files': 1, 'compressed': True, 'dll_excludes': ["<dll to exclude>"]}}, zipfile = None, console = [{ "script":"<Path and Script File Name>", "icon_resources": [(1, "<Yuour_icon.ico>")], "dest_base":"<Executable Name>" }], )
e poi creo il batch che si occuperà della conversione vera e propria Convert2Exe.bat
@echo off cls c:\Python27\python.exe setup.py py2exe -i "<eventuali moduli da injettare>" timeout 10
ed infine il batch che converte e smista Prepare_Redist.bat
@Echo off call .\Convert2Exe.bat copy .\dist\<Your_Exe_Name>.exe .\Redist /Y timeout 10
Alla fine della compilazione potrebbe apparire un messaggio che avvisa della mancanza di alcuni moduli (il che significa che molto probabilmente l'eseguibile non funzionerà).
Per ovviare a questa cosa si può intervenire sul parametro -i del batch Convert2Exe.bat se è facile identificare di che modulo si tratta.
In alternativa c'è sempre lo “sporco trucco” di aggiungere a setup.py tutti i moduli presenti nello script che si vuole convertire.
Se tutto ha funzionato a dovere nella cartella Redist dovrebbe esserci il compilato dello script.