2013-07-11 6 views
12

Ich habe vor kurzem ein ziemlich einfaches Programm für meinen Großvater mit Python mit GUI von Tkinter geschrieben, und es funktioniert wunderbar für das, wofür er es verwenden wird. Allerdings gibt es natürlich das hässliche Konsolenausgabefenster. Ich habe es erfolgreich beseitigt, indem ich einfach die Erweiterung der Datei von .py zu .pyw änderte. Wenn ich es mit PyInstaller einfriere, erscheint es wieder! Gibt es eine Möglichkeit für mich, das zu beheben?Konsole-Ausgabe beim Einfrieren von Python-Programmen mit Pyinstaller

Vielen Dank im Voraus.

+0

verwandt: [Python - wie kann ich den Windows-Eingabeaufforderungsbildschirm ausblenden, wenn das Skript ausgeführt wird?] (Http://Stackoverflow.com/q/24799155/4279) – jfs

Antwort

30

Wenn Sie das Konsolenfenster verstecken wollen, ist here die Dokumentation: Dies ist, wie Sie verwenden, um die --noconsole Option

python pyinstaller.py --noconsole yourscript.py 

Wenn Sie Hilfe pyinstaller an den Punkt zu gelangen, verwenden müssen, wo Sie verwenden müssen Die --noconsole Option here ist ein einfaches Tutorial, um dorthin zu gelangen.

+0

Ich drucke sowieso nichts auf das Konsolenfenster, das hilft also nicht. Danke für den Versuch. – dfreeze

+0

"Es gibt natürlich das hässliche Konsolenausgabefenster" meinst du, du willst es schließen? oder verhindern, dass es sich öffnet? wenn ja, habe ich falsch verstanden – Stephan

+0

ja, das ist was ich meinte. Würde 'os.system ('exit') 'funktionieren, oder würde das das Programm einfach schließen? – dfreeze

7

Fügen Sie einfach die --noconsole Flagge:

$ python pyinstaller.py --noconsole yourprogram.py 

Sie möchten vielleicht --onefile auch verwendet werden, die eine einzelne .exe Datei anstelle eines Ordner erstellt.

+0

Ich bin mit PyInstaller 2.0, was ich einfach Geben Sie 'python pyinstaller.py MYCODE.pyw' in cmd in das richtige Verzeichnis ein und es erledigt den Rest für mich, einschließlich der' .spec'-Datei. Muss ich das Programm irgendwo unterbrechen und diese Zeile ausführen? Wenn das so ist, wie? – dfreeze

+0

Danke für --onefile Vorschlag @Blender. $ python pyinstaller.py --noconsole --onefile yourprogram.py –

3

Dies ist eines der ersten Dinge, die bei der Suche nach dieser Information auftauchen, also möchte ich hinzufügen, was ich für Release 3.2 von pyinstaller gefunden habe. Wenn Sie bereits Ihr Skript verpackt haben von

pyinstaller --onefile your_script.py 

oder ähnliches ausgeführt wird, können Sie die Datei bearbeiten your_script.spec Sie sich von der Konsole zu befreien.

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

Ändern Sie einfach den Konsolenwert auf False. Dann laufen:

pyinstaller your_script.spec 

Außerdem, wenn Sie Änderungen an Ihrem Code vornehmen, führen Sie den obigen Befehl sie im your_script.exe reflektiert zu haben. Ich habe das zum Debuggen verschiedener anderer Probleme nützlich gefunden.

Verwandte Themen