2010-05-21 21 views
30

Tôi đang phát triển một ứng dụng Python bằng cách sử dụng wxPython và đóng băng bằng cxFreeze. Tất cả dường như sẽ tốt hơn ngoài các bit sau:Làm cách nào để ẩn cửa sổ bảng điều khiển khi đóng băng các ứng dụng wxPython với cxFreeze?

Khi tôi chạy tệp thi hành được tạo bởi cxFreeze, cửa sổ bảng điều khiển trống bật lên. Tôi không muốn thể hiện nó. Có cách nào tôi có thể che giấu nó không?

Nó dường như không được ghi lại trên trang web cxFreeze và Googling không bật lên nhiều so với một số vấn đề phân loại tương tự với Py2Exe.

Cảm ơn.

Trả lời

18

này đã làm việc với một mức độ nào nhưng nó có vấn đề. Chương trình của tôi chạy ở cả chế độ console và chế độ GUI. Khi chạy từ bàn điều khiển với đối số --console, nó chạy trong chế độ bàn điều khiển. Khi tôi làm theo các thủ tục dưới đây, điều này không làm việc nữa và chương trình của tôi chỉ là một ứng dụng GUI sau đó.

Mã nguồn sau đây đến từ tệp mẫu trong \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py. Bài học trong ngày. Đọc 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

Nếu bạn đang sử dụng Windows, bạn có thể đổi tên phần mở rộng "chính" của bạn kịch bản của (đó khởi chạy ứng dụng) để .pyw

+3

Điều này dường như không hoạt động. Tôi đổi tên nó thành PYW nhưng nó vẫn xuất hiện. –

2

Tùy chọn 1) Sử dụng gui2exe để bỏ qua các tùy chọn khác nhau.

Tùy chọn 2) Sửa đổi setup.py của bạn bằng thông số 'cơ sở' như vậy.

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

Đối với Windows:

Bạn phải sử dụng một dòng như sau (các thư mục sử dụng tập tin và tên nếu thích hợp)

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

Bằng cách thêm tùy chọn --base-name=Win32GUI, cửa sổ giao diện điều khiển sẽ không xuất hiện .