2013-07-28 6 views
19

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?

+1

sì, ma sono tutti per 2.7 e sotto, io uso 3.3 –

+0

Ok, ma è ancora una domanda molto comune. La mia risposta è stata da una rapida ricerca su Google. –

+1

Ho aggiunto il 3 al tuo titolo ma, sfortunatamente, sospetto che la tua domanda possa ancora essere chiusa. In bocca al lupo. –

risposta

13

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) 
+3

Questo risponde "Cosa?", ma non "Come?" – CaffeineConnoisseur

6

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à.

1

Utilizzare Pyinstaller. Dopo averlo installato, apri il terminale nella directory in cui si trova il tuo progetto.

  1. $ pyinstaller script1.py script2.py ... (dove script1, SCRIPT2, ecc, sono tutti gli script utilizzati nel progetto.)

  2. Dopo comando è completato, cartella aperta dist e inserire la sottodirectory. Lì troverai un eseguibile.

Spero che sia d'aiuto.

Problemi correlati