cx_Freeze e py2exe: un confronto

Una delle domande che si pongono più spesso i nuovi pythonisti è, a mio avviso, se sia possibile o meno fare dei comodissimi exe dai propri script python senza doversi portare dietro l'interprete per intero.

Ecco dunque il perché d'un confronto tra il celeberrimo py2exe e il meno noto cx_Freeze.

Partiamo dai criteri del nostro test, effettuato con Python 2.6.4 su Windows 2000 (via Virtualbox), e in particolare dal file utilizzato; dato che entrambi i sistemi si basano sull'includere le librerie necessarie all'esecuzione del nostro codice dentro un exe, il file (test.py) conteneva degli import ai 9 moduli standard tra i più usati e un raw_input('') finale.

Per quanto riguarda le impostazioni di py2exe e cx_Freeze, si sono usate quelle standard (nessuna compressione né esclusioni), come si può riscontrare dal file setup.py. Infine si è tenuto conto del numero di file presenti nella cartella dist (quella dell'exe) e di quanto sia stato possibile ridurre il peso di questi attraverso UPX.

Vediamo dunque la tabella:

  Peso in Mb Numero di file Peso in Mb dopo UPX
py2exe 4.54 8 2.82
cx_Freeze 4.41 6 1.70

Come si può notare entrambi i sistemi producono quasi 5 Mb ciascuno, se non fosse che UPX riesce meglio nella compressione dei file ottenuti con cx_Freeze.

Si tenga inoltre conto nello scegliere tra py2exe e cx_Freeze che il primo richiede la creazione di un file setup.py mentre l'altro mette a disposizione sia questo sistema per i più esigenti o un semplice script (>cxfreeze nomefile.py) per gli utenti medi (nel test è stato usato lo script senza alcuna opzione).

Infine non viene rilasciata una nuova versione di py2exe dal 2008, mentre l'ultima di cx_Freeze risale al 5 Gennaio 2010.

Il tuo voto: Nessuno Media voti: 3 (4 voti)