2013-04-23 12 views
13

क्या आईपीथन नोटबुक, बंद ब्राउज़र में कुछ लंबा कार्य चलाना संभव है और फिर कुछ समय बाद इसे फिर से खोलें और इन कार्यों के परिणाम प्रकट करें?अलग-अलग मोड में आईपीथॉन नोटबुक में कुछ कार्य चलाएं

कहो, इस तरह कार्य:

def f(): 
    import time 
    time.sleep(100) 
    with open("result.txt", "w") as fh: 
     fh.write("Done.") 

अगर मैं पूरा होने से पहले काम सामान्य रूप से, और करीब ब्राउज़र चलाने के लिए, के रूप में मैं इसे वापस खोलते हैं, तो मुझे कोई 'result.txt' देखते हैं।

यदि मैं इसे %px जादू या समांतर निष्पादन का उपयोग करके चलाता हूं - फिर से कोई परिणाम नहीं है यदि मैं पूरा होने से पहले ब्राउज़र बंद करता हूं।

कोई एक्सटेंशन या हैक उपलब्ध है? या क्या मैं कुछ न कुछ भूल रहा हूं?

अद्यतन 1:

यद्यपि है background jobs control support in IPython, पृष्ठभूमि नौकरियों बासी बनने के बाद मैं ब्राउज़र डिस्कनेक्ट कर दें। केवल एक चीज मैं के साथ बंद करने से पहले ब्राउज़र %connect_info जारी करने है ऊपर आ सकता है, और फिर

ipython console --existing <ID>.json 

का उपयोग कर स्क्रीन टर्मिनल से कनेक्ट और वहाँ से मेरी नौकरियों चलाते हैं।

अद्यतन 2:

इससे भी अधिक उपयोगी हैक ipython console और काम पर नियंत्रण का संयोजन है। अर्थात। मैं ब्राउज़र में बैकग्राउंड जॉब शुरू करते समय कंसोल खोलता हूं और उसी सत्र में संलग्न करता हूं और फिर जब तक नौकरी खत्म नहीं हो जाती तब तक मैं इसे बंद करने के लिए स्वतंत्र हूं।

अद्यतन 3:

यह बाद से किसी भी हैक्स के बिना संस्करण IPython 1.0dev काम करने के लिए लगता है। आप बस जो चाहते हैं उसे चलाएं, ब्राउज़र बंद करें और यह अभी भी चलता है।

उत्तर

2

मैं आमतौर पर लिनक्स कमांड स्क्रीन का उपयोग करता हूं, जो पृष्ठभूमि में चलने वाला एक अलग खोल खोलता है।

उदाहरण के लिए, जब आप पहली बार अपना खोल दर्ज करते हैं तो आप 'स्क्रीन' टाइप करते हैं। यह आपको एक नया टर्मिनल देता है। उपरोक्त आदेश के साथ ipython शुरू करें। एक बार यह चलने के बाद, आपके कीबोर्ड पर CTRL + A CTRL + D दबाएं। कार्यक्रम तब पृष्ठभूमि में चलना शुरू कर देता है और आप टर्मिनल को बंद कर सकते हैं। यदि आप इसे वापस लेना चाहते हैं, तो कमांड लाइन में 'स्क्रीन-आर' टाइप करें।

+0

स्टीफन, शायद मैं स्पष्ट नहीं था, लेकिन मैं iPython नोटबुक के बारे में पूछ रहा हूं - जो एक ब्राउज़र-आधारित कंसोल है। और मुझे स्क्रीन के नीचे से iPython तक पहुंचने के लिए कंसोल-आधारित ब्राउज़र का उपयोग करने का कोई तरीका नहीं मिला है। – Anaderi

+0

मेरा बुरा। तब कोई सुराग नहीं है। – Stephan

1

मुझे नहीं पता कि यह आईपीथन 1.0 में नया है, लेकिन मेरी आईपीथन नोटबुक में, यदि मैं आपके फ़ंक्शन f() पर कॉल करता हूं, और ब्राउज़र बंद करता हूं, तो कर्नेल पृष्ठभूमि में चल रहा है और थोड़ी देर बाद (मैं बदल गया time.sleep(10)) मुझे results.txt फ़ाइल जेनरेट की गई है। मुझे नहीं लगता कि कर्नेल, जिसे आप आमतौर पर कंसोल में शुरू करते हैं, जब आप ब्राउज़र विंडो बंद करते हैं तो बंद हो जाता है। अगर मुझे गलत लगता है तो मुझे बताएं।

+0

वास्तव में यह 1.0dev के बाद से आईपीथन में काम करता प्रतीत होता है – Anaderi

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