2012-04-11 16 views
5

मेरे पास एक ऐसी स्क्रिप्ट है जो Google Earth .kml/.kmz फ़ाइलों को टिंकर में लिखे गए एक साधारण जीयूआई इंटरफेस के साथ आकारफाइल में परिवर्तित करती है।मेरा प्रोग्राम एक .py एक्सटेंशन के साथ क्यों काम करता है लेकिन एक .pyw एक्सटेंशन के साथ नहीं?

मेरे समस्या यह है कि यह एक .py विस्तार के साथ ठीक काम करता है है, लेकिन जब तक मेरी .kml फ़ाइलें पढ़ने जब एक .pyw विस्तार के साथ बाहर बचाया यह रुक जाता।

कोई त्रुटि संदेश नहीं है और यह क्रैश नहीं होता है। जीयूआई ने ठीक, आदि लॉन्च किया, लेकिन यह सिर्फ उसी जगह पर बंद हो जाता है। मैं पाइथन 2.5 का उपयोग कर रहा हूं, और पाइथन 2.7 के साथ एक ही परिणाम था।

कोई विचार क्या कारण हो सकता है?

उत्तर

8

.pyw फ़ाइलें .py फ़ाइलों की तुलना में अलग-अलग चलती हैं - वे python.exe के बजाय एक अलग दुभाषिया, pythonw.exe से जुड़े हुए हैं, जिनमें इसके साथ जुड़े कंसोल नहीं हैं।

कुछ स्रोतों के मुताबिक, this old mailing list thread कुछ ऑपरेशन कंसोल के बिना काम नहीं करते हैं।

सटीक स्क्रिप्ट को देखे बिना, हम नहीं जानते कि वास्तव में pythonw के लिए समस्या का कारण बन रहा है।

+0

धन्यवाद! मैंने आज सुबह कई घंटों को जला दिया, लेकिन मैं इसे कभी भी समझ नहीं पाया। मुझे संदेह है कि pythonw.exe – Nick

+0

@Nick के साथ readline() का उपयोग करने में कोई समस्या है, यह लगभग निश्चित रूप से 'readline' नहीं है। क्या आप किसी भी सिस्टम कॉल का उपयोग करते हैं, 'पॉपन', ऐसा कुछ भी? यदि आप अपना कोड पोस्ट करते हैं, तो मुझे एक नज़र डालने में खुशी होगी। – agf

+2

मैंने अतीत में इस तरह की समस्याओं में भाग लिया है - यह आम तौर पर एक आउटपुट पाइप भर रहा है क्योंकि इसमें से कोई भी पढ़ने के लिए नहीं है। कुछ अनुप्रयोग वास्तव में, वास्तव में एक कंसोल होने की उम्मीद है। यदि वे मानक आउटपुट या मानक त्रुटि में डेटा भेजते रहते हैं, तो अंत में पाइप भर जाती है (चूंकि कुछ भी डेटा का उपभोग नहीं कर रहा है) और पाइप में कुछ जगह उपलब्ध होने के लिए प्रक्रिया ब्लॉक इंतजार कर रहा है। – AnotherParker