2012-10-09 13 views
8

Ostatnio stworzyłem używany plik cx_freeze do utworzenia pliku exe Pythona 3.2.2. Kiedy próbowałem uruchomić plik exe nic się nie stało.Po utworzeniu pliku python exe z cx_freeze plik nie robi nic.

Oto kod dla mojego test.py pliku:

print("hello world") 

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

Oto kod dla mojego pliku testSetup.py:

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]) 

katalog budowania że cx_freeze wykonany ma folder o nazwie exe.win32-3.2 która ma pliki:

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

+0

Zgaduję, że kliknięcie tego pliku .exe musiało otworzyć jakiś wiersz polecenia? –

+0

Jeśli robisz to z komputera z systemem Windows, to [p2exe] (http://py2exe.org/) jest o wiele łatwiejsze – inspectorG4dget

+0

nie otworzyło wiersza polecenia. –

Odpowiedz

3

Umieść input() w dolnej części kodu, a następnie spróbuj ponownie:

wygląda jak .exe tras i istnieje, zanim będzie można zobaczyć coś, więc umieścić input() na dole, aby skrypt czekał na wejście użytkownika przed wyjściem.

print("hello world") 

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

Wprowadziłem input() na dole mojego kodu i uruchomiłem go, ale wtedy pojawił się błąd, który powiedział: Nie można zaimportować modułu traceback. Wyjątek: brak modułu o nazwie re Oryginalny wyjątek: input(): utracony sys.stdin –

+0

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

+0

@AshiwiniChuadhary Zrobiłem co link powiedział do zrobienia, ale potem rzucił błąd z powodu wejścia. Tak więc usunąłem linię wejściową i wróciłem do robienia niczego lub wiersz polecenia znika zbyt szybko, aby go zobaczyć. –

17

Moja sugestia:

  1. ustawić base = None (spróbuj go: może to wszystko chcesz base = Win32GUI robi "hide" konsola - to jest przydatne podczas budowy GUI?)

  2. w tym samym folderze ze swoimi .exe zrobić plik wsadowy (plik tekstowy z .bat) dzwoniąc do .exe:

to idzie do swojego pliku wsadowego:

name-of-your-app.exe %1 

PAUSE 

Zaczniesz swoją aplikację klikając batch-file - zachowuje konsolę otwarty, więc jesteś w stanie trzciny błędów/wyjścia.

+0

Miałem ten sam problem, kiedy ustawiłem 'base = Brak '.exe rozpoczął drukowanie na konsoli. –

Powiązane problemy