2013-07-11 6 views
12

Ho recentemente scritto un programma abbastanza semplice per mio nonno che utilizza Python con la GUI di Tkinter e funziona perfettamente per quello che userà per. Tuttavia, c'è, ovviamente, la brutta finestra di output della console. Sono riuscito a sbarazzarmene semplicemente cambiando l'estensione del file da .py a .pyw. Quando lo blocco con PyInstaller, riappare di nuovo! C'è un modo per me per risolvere questo?Eliminazione dell'output della console durante il blocco dei programmi Python utilizzando Pyinstaller

Grazie in anticipo.

+0

correlati: [Python - come posso nascondere la schermata del prompt dei comandi di Windows quando lo script è in esecuzione?] (Http://stackoverflow.com/q/24799155/4279) – jfs

risposta

30

Se si desidera nascondere la finestra della console, here è la documentazione: questo è come si utilizza l'opzione

python pyinstaller.py --noconsole yourscript.py 

--noconsole Se hai bisogno di aiuto usando pyinstaller per arrivare al punto in cui è necessario utilizzare l'opzione --noconsolehere è un semplice tutorial per arrivarci.

+0

Non sto stampando nulla sulla finestra della console, quindi questo non aiuta. Grazie per aver provato. – dfreeze

+0

"c'è, ovviamente, la brutta finestra di output della console" volevi dire che vuoi chiuderla? o impedirne l'apertura? se così ho frainteso – Stephan

+0

sì, questo è quello che intendevo. 'Os.system ('exit')' funzionerebbe, o sarebbe sufficiente chiudere il programma? – dfreeze

7

Basta aggiungere il flag --noconsole:

$ python pyinstaller.py --noconsole yourprogram.py 

Si potrebbe desiderare di utilizzare --onefile pure, che crea un singolo .exe file invece di una cartella.

+0

Sto eseguendo PyInstaller 2.0, il che significa che ho semplicemente scrivi 'python pyinstaller.py MYCODE.pyw' in cmd nella directory corretta e fa il resto per me, incluso creare il file' .spec'. Devo interrompere il programma da qualche parte ed eseguire questa linea? Se é cosi, come? – dfreeze

+0

Grazie per --onefile suggestion @Blender. $ python pyinstaller.py --noconsole --onefile yourprogram.py –

3

Questa è una delle prime cose che emerge in una ricerca di queste informazioni, quindi vorrei aggiungere quello che ho trovato per la versione 3.2 di pyinstaller. Se hai già confezionato lo script eseguendo

pyinstaller --onefile your_script.py 

o simili, è possibile modificare il file your_script.spec per sbarazzarsi della console.

exe = EXE(pyz, 
      a.scripts, 
      a.binaries, 
      a.zipfiles, 
      a.datas, 
      name='main', 
      debug=False, 
      strip=False, 
      upx=True, 
      console=True) 

Basta cambiare il valore della console su False. Quindi eseguire:

pyinstaller your_script.spec 

Inoltre, se si apportano modifiche al codice, eseguire il comando sopra di averli riflettono nel your_script.exe. Ho trovato questo utile per il debug di vari altri problemi.

Problemi correlati