Come posso convertire la mia app Python in .exe
? Ho creato un programma con tkinter
e mi chiedevo come renderlo possibile agli altri. Io uso Python 3.3. Ho cercato un po 'ma non ho trovato nulla.Come faccio a compilare la mia app Python 3 su un file .exe?
risposta
cx_Freeze esegue questa operazione ma crea una cartella con molte dipendenze. py2exe ora lo fa e, con l'opzione --bundle-files 0, crea solo un EXE, che è probabilmente la soluzione migliore per la tua domanda.
UPDATE: Dopo aver incontrato i moduli di terze parti che py2exe avuto difficoltà a "trovare", mi sono trasferito a pyinstaller come kotlet schabowy suggerisce di seguito. Entrambi dispongono di un'ampia documentazione e includono .exes che è possibile eseguire con i parametri della riga di comando, ma devo ancora compilare uno script che pyinstaller non è in grado di gestire senza eseguire il debug o il grattamento della testa.
Ecco una semplice funzione di convenienza che uso per costruire un .exe con i miei valori predefiniti dall'interprete (ovviamente un batch o simile sarebbe troppo fine):
import subprocess,os
def exe(pyfile,dest="",creator=r"C:\Python34\Scripts\pyinstaller.exe",ico=r"C:\my icons\favicon.ico",noconsole=False):
insert=""
if dest: insert+='--distpath ""'.format(dest)
else: insert+='--distpath "" '.format(os.path.split(pyfile)[0])
if ico: insert+=' --icon="{}" '.format(ico)
if noconsole: insert+=' --noconsole '
runstring='"{creator}" "{pyfile}" {insert} -F'.format(**locals())
subprocess.check_output(runstring)
Questo risponde "Cosa?", ma non "Come?" – CaffeineConnoisseur
ho trovato PyInstaller funzionare al meglio . Hai molte opzioni, ad esempio puoi mettere tutto in un file exe.
Mi piace usarlo insieme a Cython per la velocità.
Utilizzare Pyinstaller. Dopo averlo installato, apri il terminale nella directory in cui si trova il tuo progetto.
$ pyinstaller script1.py script2.py ...
(dove script1, SCRIPT2, ecc, sono tutti gli script utilizzati nel progetto.)Dopo comando è completato, cartella aperta
dist
e inserire la sottodirectory. Lì troverai un eseguibile.
Spero che sia d'aiuto.
sì, ma sono tutti per 2.7 e sotto, io uso 3.3 –
Ok, ma è ancora una domanda molto comune. La mia risposta è stata da una rapida ricerca su Google. –
Ho aggiunto il 3 al tuo titolo ma, sfortunatamente, sospetto che la tua domanda possa ancora essere chiusa. In bocca al lupo. –