2017-10-17 7 views
2

J'ai donc créé un programme tkinter et l'ai enregistré sous forme de fichier .pyw de sorte que lorsque je l'exécute, il n'affiche pas la fenêtre d'arrière-plan CLI mais quand je l'ai compilé avec py2exe et cx-Freeze et exécuter l'exécutable, il a montré l'invite CLI. Comment serai-je capable de le compiler dans un fichier exécutable qui, lorsqu'il sera exécuté, ne montrera pas la fenêtre noire?Conversion de l'application Tkinter withoul CLI

Répondre

0

Dans Windows, vous pouvez cacher la CLI en utilisant:

base = Win32GUI 

Par exemple, dans ce script:

import sys 
from cx_Freeze import setup, Executable 

build_exe_options = {"packages": ["os"], "excludes": []} 
base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup( name = "guifoo", 
     version = "0.1", 
     description = "My GUI application!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("guifoo.py", base=base)]) 

EDIT:

Vous mentionnez les fichiers multimédias ne sont pas inclus. C'est tout à fait normal, vous devez les spécifier manuellement. Bien qu'il existe de nombreuses façons de le faire, le plus simple est d'utiliser l'argument include_files. Ceci est assez simple et peut se faire comme ceci:

import sys 
from cx_Freeze import setup, Executable 

build_exe_options = {"packages": ["os"], "excludes": [], "include_files":["Path/To/Media/Files.jpg"]} 
base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup( name = "guifoo", 
     version = "0.1", 
     description = "My GUI application!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("guifoo.py", base=base)]) 

En utilisant cette méthode, vous pouvez inclure des dossiers entiers comme celui-ci:

"include_files":["path/to/folder"] 

ou des fichiers individuels (comme indiqué ci-dessus) comme ceci:

"include_files":["path/to/file.png"] 
+0

Merci Simon. Cela a fonctionné mais quelque chose n'allait pas. La compilation a été réussie mais tous les fichiers multimédia n'ont pas été copiés, je dois donc le déplacer manuellement. Au fait, si je veux utiliser py2exe au lieu de cx_Freeze, serais-tu capable de m'aider? –

+0

@LeeYou Non désolé je ne sais pas py2exe (aussi cela ne fonctionne que pour python 2) aussi quels sont les noms et les chemins de fichiers des fichiers multimédias à inclure? Je vais modifier pour inclure ceux-ci une fois que vous me le dites. – Simon