2012-10-09 17 views
8

Ho recentemente creato cx_freeze usato per creare un file exe python 3.2.2. Quando ho provato a eseguire il file exe non è successo niente.Dopo aver creato il file exe python con cx_freeze il file non fa nulla

Ecco il codice per il mio file test.py:

print("hello world") 

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

Ecco il codice per il mio file 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]) 

La directory di compilazione che cx_freeze fatto ha una cartella chiamata exe.win32-3.2 che ha i file:

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

+0

presumo cliccando che .exe deve aver aperto qualche richiamo di ordine? –

+0

Se stai facendo questo da un computer Windows, quindi [p2exe] (http://py2exe.org/) è molto più semplice – inspectorG4dget

+0

non ha aperto un prompt dei comandi. –

risposta

3

Posizionare un input() alla parte inferiore del codice, e riprova:

Sembra che il tuo .exe corre e esiste prima di poter vedere qualcosa, in modo da mettere un input() in basso per fare in modo che lo script aspetti l'input dell'utente prima di uscire.

print("hello world") 

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

Inserisco input() nella parte inferiore del mio codice e l'ho eseguito, ma poi è comparso un errore che diceva: Impossibile importare il modulo di traceback. Eccezione: nessun modulo denominato Eccezione originale: input(): perso sys.stdin –

+0

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

+0

@AshiwiniChuadhary Ho fatto cosa il link diceva di fare, ma poi ha generato un errore a causa dell'input. Così ho rimosso la riga di input e non è più possibile fare nulla o il prompt dei comandi sta scomparendo troppo velocemente per vederlo. –

17

Il mio suggerimento:

  1. set base = None (provare per credere: forse è tutto quello che vuoi base = Win32GUI fa "nascondere" la console - questo è utile quando si sta costruendo una GUI?)

  2. Nella stessa cartella con i tuoi .exe fare un file batch (un file di testo con bat) di richiedere l'exe:

questo va nel vostro file batch:

name-of-your-app.exe %1 

PAUSE 

Inizierete la vostra applicazione facendo clic sul file batch - mantiene la console aperta in modo da essere in grado di canna l'errori/uscita.

+0

Ho avuto lo stesso problema, una volta impostato 'base = None' il file .exe ha iniziato a stampare sulla console. –

Problemi correlati