Comment puis-je cacher la fenêtre de la console lors de la congélation des applications wxPython avec cxFreeze?

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

  •  04-10-2019
  •  | 
  •  

Question

Je développe une application Python en utilisant wxPython et le gel à l'aide cxFreeze. Tout semble aller bien à part ce bit suivant:

Quand je lance le fichier exécutable créé par cxFreeze, une fenêtre de console blanche apparaît. Je ne veux pas le montrer. Est-il possible que je pouvais le cacher?

Il ne semble pas être documenté sur le site cxFreeze et recherche sur Google ne se est pas beaucoup à part quelques problèmes de sorta similaires avec py2exe.

Merci.

Était-ce utile?

La solution

Cela a fonctionné dans une certaine mesure, mais il a des problèmes. Mon programme fonctionne à la fois en mode console et un mode graphique. Lors de l'exécution de la console avec un argument --console il fonctionne en mode console. Lorsque j'ai suivi la procédure ci-dessous, cela ne fonctionne plus et mon programme est seulement une application GUI alors.

Le code source suivant provient d'un exemple de fichier dans le \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py. Leçon du jour. Lisez le 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)])

Autres conseils

Pour Windows:

Vous devez utiliser une ligne comme celui-ci (dossiers de fichiers d'utilisation et noms selon le cas)

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

En ajoutant l'option --base-name=Win32GUI, la fenêtre de la console n'apparaît pas.

Si vous utilisez Windows, vous pouvez renommer votre poste de script « principal » (qui lance l'application) à .pyw

Option 1) Utiliser gui2exe muck avec différentes options.

Option 2) Modifier votre setup.py avec le paramètre 'base' en tant que telle.

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"
    )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top