How can I hide the console window when freezing wxPython applications with cxFreeze?

后端 未结 4 1040
执念已碎
执念已碎 2020-12-12 21:23

I\'m developing a Python application using wxPython and freezing it using cxFreeze. All seems to be going fine apart from this following bit:

When I run the executab

相关标签:
4条回答
  • 2020-12-12 21:31

    For Windows:

    You have to use a line like this (use file folders and names as appropriate)

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

    By adding the --base-name=Win32GUI option, the console window will not appear.

    0 讨论(0)
  • 2020-12-12 21:31

    Option 1) Use gui2exe to muck with various options.

    Option 2) Modify your setup.py with 'base' parameter as such.

    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"
        )
    
    0 讨论(0)
  • 2020-12-12 21:36

    If you're using Windows, you could rename your "main" script's extension (that launches the app) to .pyw

    0 讨论(0)
  • 2020-12-12 21:41

    This worked to some extent but it has issues. My program runs in both a console mode and a GUI mode. When run from the console with a --console argument it runs in a console mode. When I followed the procedure below, this doesn't work anymore and my program is only a GUI app then.

    The following source code comes from a sample file in the \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py. Lesson of the day. Read the 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)])
    
    0 讨论(0)
提交回复
热议问题