2012-10-09 43 views
8

Gần đây tôi đã tạo cx_freeze đã sử dụng để tạo tệp python 3.2.2 exe. Khi tôi cố chạy file exe thì không có gì xảy ra.Sau khi tạo tệp python exe với cx_freeze tệp không làm bất cứ điều gì

Đây là mã cho file test.py tôi:

print("hello world") 

for i in range(5): 
    print(i) 

Đây là mã cho file testSetup.py tôi:

from cx_Freeze import setup, Executable 

exe = Executable(
    script="test.py", 
    base="Win32GUI", 
    targetName="Test.exe" 
    ) 


setup(
    name = "Test", 
    version = "0.1", 
    description = "I wish programming was this easy", 
    executables = [exe]) 

Thư mục build rằng cx_freeze đã có một thư mục có tên exe.win32-3.2 trong đó có các tập tin:

bz2.pyd
library.zip
python32.dll
test.exe
unicodedata.pyd

+0

Tôi đoán nhấp vào đó .exe phải mở một số dấu nhắc lệnh? –

+0

Nếu bạn đang làm điều này từ một cửa sổ máy tính, sau đó [p2exe] (http://py2exe.org/) là dễ dàng hơn nhiều – inspectorG4dget

+0

nó đã không mở một dấu nhắc lệnh. –

Trả lời

3

Đặt input() ở dưới cùng của mã của bạn, và thử lại:

Hình như .exe của bạn chạy và tồn tại trước khi bạn có thể nhìn thấy bất cứ điều gì, vì vậy đặt một input() ở phía dưới để làm cho tập lệnh chờ đầu vào của người dùng trước khi thoát.

print("hello world") 

for i in range(5): 
    print(i) 
input() 
+1

Tôi đặt đầu vào() ở cuối mã của tôi và chạy nó, nhưng sau đó một lỗi xuất hiện cho biết: Không thể nhập mô-đun truy nguyên. Ngoại lệ: Không có mô-đun nào được đặt tên lại Ngoại lệ ban đầu: đầu vào(): bị mất sys.stdin –

+0

@SnakeP xem http://stackoverflow.com/questions/5603287/exe-error-with-cx-freeze –

+0

@AshiwiniChuadhary Tôi đã làm những gì liên kết cho biết để làm, nhưng sau đó nó đã ném một lỗi vì đầu vào. Vì vậy, sau đó tôi loại bỏ các dòng đầu vào và nó trở lại để không làm gì hoặc dấu nhắc lệnh đang biến mất quá nhanh để xem nó. –

17

Đề nghị của tôi:

  1. thiết base = None (thử nó: có lẽ đó là tất cả các bạn muốn base = Win32GUI làm "ẩn" giao diện điều khiển - điều này rất hữu ích khi bạn đang xây dựng một giao diện?)

  2. Trong cùng thư mục với tệp .exe của bạn, hãy tạo một tệp theo lô (tệp văn bản có .bat) gọi số .exe:

này đi vào hàng loạt tập tin của bạn:

name-of-your-app.exe %1 

PAUSE 

Bạn sẽ bắt đầu ứng dụng của bạn bằng cách nhấn vào hàng loạt tập tin - nó giữ giao diện điều khiển mở để bạn có thể sậy các lỗi/đầu ra.

+0

Tôi đã có cùng một vấn đề, một khi tôi đặt 'base = None' .exe bắt đầu in trên bảng điều khiển. –

Các vấn đề liên quan