2013-04-30 42 views
5

Đây là một vấn đề đã làm phiền tôi một thời gian. Tôi đã tra cứu nó, nhưng không tìm thấy câu trả lời. Tôi cũng đã cố gắng tìm ra nó, nhưng chưa thành công. Bất cứ khi nào tôi tạo và cố gắng đóng băng một chương trình với hàm input() trong đó tôi nhận được cùng một lỗi. enter image description hereLỗi Cx_freeze bị mất sys.stdin

Tôi đã thử chạy .exe trong dấu nhắc lệnh nhưng tôi gặp lỗi tương tự. Tập lệnh setup.py của tôi bên dưới.

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

Và kịch bản thử nghiệm ngắn của tôi:

import sys,re 
input('input') 

Đây có phải là một vấn đề tôi có thể sửa chữa, hoặc để tôi chỉ phải làm việc mà không có sự input() chức năng? Tôi đang sử dụng Python 3.2, trên cửa sổ bảy, với phiên bản cx_freeze tương ứng. Cảm ơn trước.

Trả lời

11

Cơ sở Win32GUI được thiết kế cho các chương trình GUI của Windows - tức là chúng chạy trong cửa sổ, không phải tại dấu nhắc lệnh. Vì vậy, không có stdin, và bạn không thể sử dụng input().

Nếu bạn muốn tạo chương trình bảng điều khiển, hãy đặt base='Console' (hoặc base=None, vì Bảng điều khiển là mặc định).

+0

Tôi nên thêm từ khóa "base = 'console'" vào đâu để làm cho nó chạy trong bảng điều khiển? –

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