2010-07-18 33 views
19

Ho un programma Python utilizza Qt (PyQt4 in effetti) e quando lo avvio dal suo main.py, ottengo una finestra della console e la finestra della GUI (su Windows, ovviamente).Nascondere la finestra della console dell'applicazione Python con py2exe

Quindi compilo il mio programma con py2exe e main.exe è stato creato correttamente. Tuttavia, se eseguo main.exe (questo è ciò che faranno gli utenti del programma) appare ancora la finestra della console di Python e tutto il mio testo di debug è stdout-ed in quella finestra.

Voglio nascondere la finestra della linea di cmd quando la mia applicazione è in esecuzione e voglio solo la mia GUI essere visibile all'utente quando viene eseguita dal file .exe.

È possibile?

risposta

27

Sì, è possibile.

Se uso

setup(console=['__main__.py'], options={"py2exe":{"includes":["sip"]}}) 

crea una console app, se io uso

setup(windows=['__main__.py'], options={"py2exe":{"includes":["sip"]}}) 

non mostra console su file exe. Ma l'output è scaricato sul file main.exe.log nella cartella .exe. Stai attento.

+2

Per sopprimere l'output è possibile reindirizzare lo stdout come in http://coreygoldberg.blogspot.com/2009/05/python-redirect-or-turn-off-stdout-and.html o in qualche altra funzione di registrazione. – ars

+1

Per me, il "sip" non è stato riconosciuto, ma sono riuscito a creare il mio exe e farlo funzionare semplicemente usando "setup (windows = ['fileName.py'])" –

+0

Questa soluzione non funziona per me . Questo è il mio codice 'setup ( options = {'py2exe': {'bundle_files': 1, 'compresso': vero}}, console = [" main.pyw "], zipfile = Nessuno, )' –

6

Dubito che questo abbia un effetto su py2exe, ma è correlato alla domanda. Per eseguire una GUI Python su Windows senza il terminale, utilizzare pythonw.exe anziché python.exe. Questo dovrebbe accadere automaticamente se si termina il nome del file con ".pyw".

2

Questo potrebbe non essere direttamente correlato alla tua domanda, ma penso che valga la pena provare.

È facile farlo utilizzando PyInstaller utilizzando il seguente codice.

pyinstaller -w myscript.py 

Semplice come quello e tutto è sistemato.

Problemi correlati