2013-04-30 13 views
5

Questo è un problema che mi ha infastidito per un po '. L'ho cercato, ma non ho trovato risposta. Ho anche provato a capirlo da solo, ma non ci sono riuscito. Ogni volta che creo e provo a bloccare un programma con la funzione input(), ottengo lo stesso errore. enter image description hereErrore di Cx_freeze perso sys.stdin

Ho provato a eseguire il .exe nel prompt dei comandi ma ottengo lo stesso errore. Il mio script setup.py è sotto.

import cx_Freeze, sys 
from cx_Freeze import setup, Executable 

exe=Executable(
    script="input.py", 
    base="Win32Gui", 

    ) 
includefiles=[] 
includes=["re"] 
excludes=[] 
packages=[] 
setup(

    version = "0", 
    description = "No Description", 
    author = "Anthony", 
    name = "0", 
    options = {'build_exe': {'excludes':excludes,'packages':packages,'include_files':includefiles}}, 
    executables = [exe] 
    ) 

E il mio breve script di test:

import sys,re 
input('input') 

questo è un problema che posso risolvere o devo solo lavorare senza la funzione input()? Sto usando Python 3.2, su Windows 7, con la corrispondente versione cx_freeze. Grazie in anticipo.

risposta

11

La base Win32GUI è progettata per i programmi della GUI di Windows, ovvero vengono eseguiti in Windows, non al prompt dei comandi. Quindi non esiste lo stdin e non è possibile utilizzare input().

Se si desidera creare un programma di console, impostare base='Console' (o base=None, poiché Console è l'impostazione predefinita).

+0

Dove devo aggiungere la parola chiave "base = 'console'", per farlo funzionare nella console? –

Problemi correlati