====== PY2EXE ======
Py2Exe consente di trasformare uno script Python in un eseguibile Windows.
===== Pre Requisiti =====
Per prima cosa è necessario installare il pacchetto py2exe
==== Python 3.3+ ====
$ pip install py2exe
==== Python 2.6 ====
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
===== Operatività =====
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.
{{ :python:py2exe:folder_structure.png?nolink |}}
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 = '',
description = '',
version = '',
company_name = "",
copyright = "",
options = {'py2exe': {'bundle_files': 1, 'compressed': True, 'dll_excludes': [""]}},
zipfile = None,
console = [{
"script":"",
"icon_resources": [(1, "")],
"dest_base":""
}],
)
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 ""
timeout 10
ed infine il batch che converte e smista ''//Prepare_Redist.bat//''
@Echo off
call .\Convert2Exe.bat
copy .\dist\.exe .\Redist /Y
timeout 10
===== Moduli Mancanti =====
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.
===== Conclusione =====
Se tutto ha funzionato a dovere nella cartella ''Redist'' dovrebbe esserci il compilato dello script.