2010-05-21 2 views
30

저는 wxPython을 사용하여 파이썬 응용 프로그램을 개발하고 cxFreeze를 사용하여 동결합니다. 모두 다음 비트와 다른 점이 많습니다.cxFreeze로 wxPython 응용 프로그램을 정지 할 때 콘솔 창을 숨기려면 어떻게해야합니까?

cxFreeze로 만든 실행 파일을 실행하면 빈 콘솔 창이 팝업됩니다. 나는 그것을 보여주고 싶지 않다. 내가 그것을 숨길 수있는 방법이 있습니까?

cxFreeze 사이트에는 문서화되어 있지 않으며 인터넷 검색은 Py2Exe의 유사한 문제와 별다른 차이가 없습니다.

감사합니다. Windows를 사용하는 경우

답변

18

을 .pyw 당신의 "주"스크립트의 확장 (즉, 응용 프로그램을 실행) 이름을 바꿀 수 있지만, 문제가 있습니다. 내 프로그램은 콘솔 모드와 GUI 모드에서 실행됩니다. 콘솔에서 --console 인수를 사용하여 실행하면 콘솔 모드로 실행됩니다. 아래 절차를 따르면 더 이상 작동하지 않으며 내 프로그램은 GUI 응용 프로그램입니다.

다음 소스 코드는 \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py의 샘플 파일에서 가져옵니다. 오늘의 수업. 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)]) 
2

, 당신이 어느 정도 일

+3

이것은 작동하지 않는 것 같습니다. 나는 그것을 PYW로 이름을 바꾸었지만 여전히 나타났습니다. –

2

옵션 1) gui2exe을 사용하면 다양한 옵션을 사용할 수 있습니다.

옵션 2) 'base'매개 변수를 사용하여 setup.py를 수정하십시오. Windows의 경우

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

:

당신은 --base-name=Win32GUI 옵션을 추가하면 (적절한 사용 파일 폴더와 이름)는이 같은 라인

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

를 사용할 필요가 콘솔 창에 표시되지 않습니다 .

관련 문제