2015-04-15 45 views
5

Próbuję przekonwertować grę python (wykonane z pygame) do pliku exe dla systemu Windows, a ja użyłem cx_Freeze. Żadnych problemów.
Chodzi o to, że po uruchomieniu myGame.exe otwiera się normalne okno Pygame i okno konsoli (czego nie chcę).Pomoc cx_Freeze: czy istnieje sposób, aby NIE otwierać konsoli?

Czy istnieje sposób na usunięcie okna konsoli? Przeczytałem większość dokumentacji, ale nic nie widziałem (oprócz bazy, ale nie rozumiem, co to jest).

BTW, tu jest mój plik instalacyjny:

import cx_Freeze 

exe = [cx_Freeze.Executable("myGame.py")] 

cx_Freeze.setup(
    name = "GameName", 
    version = "1.0", 
    options = {"build_exe": {"packages": ["pygame", "random", "ConfigParser", "sys"], "include_files": [ 
    "images", "settings.ini", "arialbd.ttf"]}}, 
    executables = exe 
) 

Oto zrzut ekranu z tego, co się dzieje, kiedy uruchomić exe: ScreenShot

+0

Zmień nazwę "myGame.py" do "myGame.pyw". Szczegółowe informacje można znaleźć na stronie http://stackoverflow.com/questions/12121033/python-terminal-window-popping-up-at-pygame-app-run. Również interesujące: http://stackoverflow.com/questions/7012444/disable-the-pygame-console-output –

+0

możliwy duplikat [Jak mogę ukryć okno konsoli w aplikacji PyQt działającej pod Windows?] (Http: // /stackoverflow.com/questions/466203/how-can-i-hide-the-console-window-in-a-pyqt-app-running-on-windows) –

+0

Próbowałem już zmienić rozszerzenie myGame.py na. pyw, ale nie ma zmian w zachowaniu pliku exe (nadal otwiera konsolę) :( – Dalex

Odpowiedz

6

Więc co się stało, było to, że plik setup.py brakowało parametru.
Co należy dodać to base = "Win32GUI", aby zadeklarować, że nie potrzebujesz okna konsoli po uruchomieniu aplikacji.
Oto kod:

import cx_Freeze 

exe = [cx_Freeze.Executable("myGame.py", base = "Win32GUI")] # <-- HERE 

cx_Freeze.setup(
    name = "GameName", 
    version = "1.0", 
    options = {"build_exe": {"packages": ["pygame", "random", "ConfigParser", "sys"], 
     "include_files": ["images", "settings.ini", "arialbd.ttf"]}}, 
    executables = exe 
)