27 votes

Comment puis-je cacher la fenêtre de la console lors du gel des applications wxPython avec cxFreeze ?

Je développe une application Python à l'aide de wxPython et je la gèle à l'aide de cxFreeze. Tout semble bien se passer, à l'exception de l'élément suivant :

Lorsque je lance l'exécutable créé par cxFreeze, une fenêtre de console vide s'affiche. Je ne veux pas la montrer. Existe-t-il un moyen de la masquer ?

Il ne semble pas être documenté sur le site de cxFreeze et la recherche sur Google n'a pas donné grand chose à part quelques problèmes similaires avec Py2Exe.

Merci.

17voto

Antonio Points 111

Pour Windows :

Vous devez utiliser une ligne comme celle-ci (utilisez les dossiers et les noms de fichiers comme il convient)

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

En ajoutant le --base-name=Win32GUI la fenêtre de la console n'apparaîtra pas.

15voto

Mridang Agarwalla Points 7797

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

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

2voto

fseto Points 2449

Option 1) Utiliser gui2exe pour réfléchir à diverses options.

Option 2) Modifiez votre setup.py avec le paramètre 'base' comme suit.

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"
    )

1voto

Steven Sproat Points 1817

Si vous utilisez Windows, vous pouvez renommer l'extension de votre script "principal" (qui lance l'application) en .pyw.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X