Wie kann ich das Konsolenfenster verbergen, wenn WxPython Anwendungen mit cxFreeze Einfrieren?

StackOverflow https://stackoverflow.com/questions/2880316

  •  04-10-2019
  •  | 
  •  

Frage

Ich entwickle eine Python-Anwendung mit wxPython und Einfrieren cxFreeze verwenden. Alles scheint abgesehen von diesem folgende Bit wird gut werden:

Wenn ich die ausführbare Datei erstellt von cxFreeze, ein leeres Konsolenfenster ausführen erscheint. Ich will nicht, es zu zeigen. Gibt es eine Weise, die ich es verstecken könnte?

Es scheint nicht auf dem cxFreeze Ort zu dokumentieren und googeln aufdrehen nicht viel abgesehen von einigen ähnlichen sorta Problemen mit py2exe.

Danke.

War es hilfreich?

Lösung

arbeiteten Diese zu einem gewissen Grad, aber es hat Probleme. Mein Programm läuft sowohl in einem Konsolenmodus und ein GUI-Modus. Wenn von der Konsole mit einem --console Argumente laufen läuft es in einem Konsole-Modus. Als ich die Prozedur unten gefolgt, funktioniert das nicht mehr und mein Programm ist nur eine GUI-Anwendung dann.

Der folgende Quellcode stammt aus einer Beispieldatei im \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py. Lektion des Tages. Lesen Sie die Readme.

# A simple setup script to create an executable using PyQt4. This also
# demonstrates the method for creating a Windows executable that does not have
# an associated console.
#
# PyQt4app.py is a very simple type of PyQt4 application
#
# Run the build process by running the command 'python setup.py build'
#
# If everything works well you should find a subdirectory in the build
# subdirectory that contains the files needed to run the application

import sys

from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
        name = "simple_PyQt4",
        version = "0.1",
        description = "Sample cx_Freeze PyQt4 script",
        executables = [Executable("PyQt4app.py", base = base)])

Andere Tipps

Für Windows:

Sie haben eine Zeile wie diese verwenden (Verwendung Aktenordner und Namen entsprechend)

C:/Python/Scripts/cxfreeze C:/Python/Code/yourprogram.py --base-name=Win32GUI --target-dir C:/Python/Dist

Durch das Hinzufügen der --base-name=Win32GUI Option, die Konsolenfenster nicht angezeigt.

Wenn Sie mit Windows arbeiten, können Sie Ihre „Haupt“ Skript-Erweiterung umbenennen (das startet die app) zu .pyw

Option 1) Verwenden Sie gui2exe Dreck mit verschiedenen Optionen.

Option 2) Ändern Sie bitte Ihre setup.py mit 'Basis' Parameter als solche.

GUI2Exe_Target_1 = Executable(
    # what to build
    script = "rf_spi.py",
    initScript = None,
    base = 'Win32GUI',  # <-- add this
    targetDir = r"dist",
    targetName = "rf_spi.exe",
    compress = True,
    copyDependentFiles = False,
    appendScriptToExe = False,
    appendScriptToLibrary = False,
    icon = r"wireless.ico"
    )
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top