2017-10-17 101 views
2

所以我創建了一個tkinter程序並將其保存爲一個.pyw文件,以便當我運行它時它不會顯示CLI背景窗口,但是當我使用py2exe和cx-Freeze編譯它時,運行它顯示CLI提示符的可執行文件。我怎樣才能將它編譯成可執行文件,在運行時它不會顯示黑色窗口?轉換Tkinter應用程序與CLI CLI

回答

0

在Windows中,你可以使用隱藏CLI:

base = Win32GUI 

例如,在此腳本:

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

編輯:

你提不包括媒體文件。這很正常,你必須手動指定這些。雖然有很多方法可以做到這一點,但最簡單的方法是使用include_files參數。這是相當簡單,可以這樣做:

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

使用這種方法,你可以包括這樣的整個文件夾:

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

或單個文件(如上圖所示),這樣的:

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

謝謝西蒙。它確實有效,但有些錯誤。構建成功,但所有媒體文件未被複制,因此我必須手動移動它。順便說一句,如果我想使用py2exe而不是cx_Freeze,你能幫助我嗎? –

+0

@LeeYou沒有抱歉,我不知道py2exe(它也只適用於python 2)還包括媒體文件的名稱和文件路徑是什麼?一旦你告訴我,我會編輯包含這些內容。 – Simon