Konsolenfenster mit Tkinter und cx_Freeze ausblenden

7

Ich verwende cx_freeze, um eine tkinter App einzufrieren. Wenn ich die exe ausführe, bekomme ich ein wundervolles USELESS Konsolenfenster zusammen mit meiner tkinter GUI.

Ich möchte dieses nutzlose schwarze Fenster entfernen / verstecken.

Ich habe Threads gesehen, die folgendes vorschlagen:

%Vor%

Der obige Code macht das Gegenteil von dem, was ich will. Es verbirgt meine GUI, während das nutzlose schwarze Fenster übrig bleibt. Ich möchte, dass es andersherum ist.

    
Rhys 02.04.2011, 14:55
quelle

7 Antworten

7

Diese Frage ist sehr ähnlich, aber für wxPython und cx_Freeze. Glücklicherweise stellt sich heraus, dass das Erscheinungsbild der Konsole nicht vom Quellcode, sondern vom Buildskript aus konfiguriert werden kann. Der Trick besteht darin, die Variable base in Ihrem cx_Freeze Build-Skript zu setzen:

%Vor%

Hier ist die entsprechende Dokumentation (obwohl nicht ausdrücklich erwähnt wird, dass base die Konsole steuert Option).

Auch, weil es interessant ist, löst eine Antwort auf eine andere Frage das Problem der Erstellung einer GUI App mit oder ohne Konsolenmodus Option, die ich dachte, war sehr cool.

    
gary 07.07.2012, 11:17
quelle
13

Ich erinnere mich, irgendwo gelesen zu haben, dass unter Windows, wenn Sie Ihre Dateiendung als .pyw angeben, diese mit pythonw.exe (ohne Konsolenfenster) gestartet wird. Funktioniert das für Sie?

    
Noufal Ibrahim 02.04.2011 15:04
quelle
4
Genau wie Gary sagte, dann:

%Vor%

Dies wird funktionieren cx_Freeze

    
Victor 11.12.2012 06:57
quelle
2

Ich hatte heute das gleiche Problem

Was ich verwendet habe, um meine Python-Programme zu kompilieren, war py2exe und der Fix war sehr einfach, modifiziere die Setup-Datei wie unten gezeigt. Meine Schnittstelle ist mit Tkinter

geschrieben

Ändern Sie das Skript "setup.py" py2exe von:

Alter Python-Code:

%Vor%

Neuer Python-Code:

%Vor%

Nachdem ich das getan habe und mein Setup-Skript erneut gestartet habe, wurde die Anwendung geladen und das Konsolenfenster nicht angezeigt. Die einzige Sache mit dieser ist, wenn Sie Ihre Anwendung haben, die Druckbefehle zum Konsolenfenster sendet, sehen Sie nicht Thema. Ich hoffe, das hilft.

    
Doomloard 14.11.2011 18:11
quelle
1

Ich nehme an, mit "black window" beziehen Sie sich auf das Terminalfenster. Um dies zu verhindern, speichern Sie Ihre Datei als .pyw Erweiterung statt .py

    
IKnowSomeThings 11.07.2012 21:22
quelle
1

Wenn Sie pyinstaller verwenden, verwenden Sie pyinstaller-gui.py In der Windows-Befehlszeile geben Sie

ein
  

python pyinstaller-gui.py

Dies wird zuerst sagen "Bitte verwenden Sie nur 'pyinstaller.py'. Gui ist nicht gepflegt." Ändern Sie den Code, und Sie können das ausführen.

Es wird ein Popup-Fenster angezeigt, in dem Sie Ihr Skript und einige Kontrollkästchen auswählen können. Überprüfen Sie 'keine Konsole (nur Windows)

Das ist es. Du bist fertig!

Eine weitere Option: Verwenden Sie beim Erstellen die Option --noconsole. das heißt:

  

python pyinstaller.py --noconsole yourscript.py

    
Jigar Bhatt 13.06.2013 16:35
quelle
0

Für mich funktioniert die Option --base-name Win32GUI . Hier ist ein Beispiel:

  

cxfreeze your_python_file.py --basename Win32GUI --target-dir your_target_dir

    
Tom Pohl 11.03.2015 07:52
quelle

Tags und Links