2010-11-25 15 views
6

के साथ exe बनाने के बाद EOFError का कारण बनता है py2exeraw_input() के साथ एक स्क्रिप्ट से exe बनाने के बाद EOFError उत्पन्न होता है।raw_input py2exe

मैं इससे कैसे बच सकता हूं?

File "test.py", line 143, in main 
    raw_input("\nPress ENTER to continue ") 
EOFError: EOF when reading a line 

उत्तर

4
>>> help(raw_input) 
Help on built-in function raw_input in module __builtin__: 

raw_input(...) 
    raw_input([prompt]) -> string 

    Read a string from standard input. The trailing newline is stripped. 
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError. 
    On Unix, GNU readline is used if enabled. The prompt string, if given, 
    is printed without a trailing newline before reading. 

क्या गलत है? कीबोर्ड पर आप क्या टाइप करते हैं?

संपादित करें (यहां सूचना दी टिप्पणी तक): - एक सांत्वना के बिना raw_input का उपयोग करने के लिए कोई stdin है

मेरा अनुमान है कि आप "खिड़कियों" तर्क के साथ py2exe इस्तेमाल किया है, जिसका अर्थ है कि कोई सांत्वना खोला जाता है। आप इसके बजाय अपने setup.py में "कंसोल" तर्क का उपयोग कर सकते हैं, और आपका exe एक कंसोल विंडो खुल जाएगा जो raw_input को

+0

पर काम करने की अनुमति देता है मुझे कुछ भी करने/दर्ज करने का मौका नहीं मिलता है। मेरे पास मुख्य के अंत में एक raw_input() है ताकि यह रोक सके ताकि मैं डेटा देख सकूं जो stdout पर outputted हो गया है। मैंने बनाया और निकालने से पहले यह ठीक काम किया ... अगर इस उद्देश्य के लिए raw_input() का कोई विकल्प है तो मैं इसका उपयोग कर सकता हूं। कोई विचार? – volting

+0

मेरा अनुमान है कि आपने "विंडोज़" तर्क के साथ py2exe का उपयोग किया है, जिसका अर्थ है कि कोई कंसोल खोला नहीं जाता है - कंसोल के बिना कच्चे_इनपुट का उपयोग करने के लिए कोई stdin नहीं है। आप इसके बजाय अपने setup.py में "कंसोल" तर्क का उपयोग कर सकते हैं, और आपका exe एक कंसोल विंडो खुल जाएगा जो raw_input को काम करने की अनुमति देता है ------ http://www.mail-archive.com/[email protected] से seul.org/msg04832.html – Ant

+1

हां यह वास्तव में समस्या थी। मैं एक py2exe स्क्रिप्ट का एक रीहैश संस्करण का उपयोग कर रहा था जिसे मैंने wxPython gui ऐप के लिए exe बनाने के लिए उपयोग किया था, इसलिए विंडोज़ तर्क का उपयोग। धन्यवाद – volting

संबंधित मुद्दे