2013-10-11 10 views
20

मुझे पहले से परिभाषित चरों तक पहुंच प्राप्त करने और काम पर जाने के लिए, इसे फिर से खोलने पर नोटबुक (अधिकांश हिस्सों) को फिर से चालू करना होगा।आईपीथॉन नोटबुक चलाने पर कुछ कोशिकाओं को कैसे छोड़ें (अंतःस्थापित)?

हालांकि, कभी-कभी मैं कुछ कोशिकाओं को छोड़ना चाहता हूं, जिनके बाद के कोशिकाओं पर कोई प्रभाव नहीं पड़ता है (उदाहरण के लिए, उनमें विश्लेषण की एक शाखा शामिल हो सकती है) और इसे चलाने में बहुत लंबा समय लग सकता है। इन कोशिकाओं को नोटबुक में बिखराया जा सकता है, ताकि "नीचे चलाएं" जैसी कुछ मदद न करे।

क्या यह हासिल करने का कोई तरीका है?

आदर्श रूप से, उन कोशिकाओं को कुछ विशेष झंडे के साथ टैग किया जा सकता है, ताकि वे मैन्युअल रूप से "रन" हो सकें, लेकिन "सभी चलाएं" पर छोड़ दिया जाएगा।

संपादित

%%cache (ipycache विस्तार) के रूप में @Jakob ने सुझाव दिया कुछ हद तक समस्या का हल।

दरअसल, मुझे फिर से चलाने के दौरान किसी भी चर (जो कि कोशिकाओं के लिए अनावश्यक लेकिन अनावश्यक हो सकता है) लोड करने की आवश्यकता नहीं है, केवल संग्रहित आउटपुट परिणामों का विश्लेषण करने के मामले में महत्वपूर्ण है।

एक कार्य के आसपास के रूप में, सेल की शुरुआत में %%cache folder/unique_identifier डाल दें। कोड केवल एक बार निष्पादित किया जाएगा और जब तक आप अनन्य_ पहचानकर्ता फ़ाइल को हटा नहीं देते तब तक कोई चर नहीं लोड किया जाएगा।

दुर्भाग्य, %%cache साथ जब फिर से चलाने के सभी उत्पादन परिणाम खो रहे हैं ...

संपादित द्वितीय (अक्टूबर 14, 2013)

के मास्टर संस्करण IPython + ipycache अब कोडसेल आउटपुट के अचार (और फिर से प्रदर्शित) भी।

लेटेक्स, एचटीएमएल (पांडा DataFrame उत्पादन) सहित समृद्ध प्रदर्शन आउटपुट के लिए, IPython के प्रदर्शन() विधि, उदा display(Latex(r'$\alpha_1$'))

+0

आप उत्पादन पुन: प्रदर्शित करने की आवश्यकता नहीं है, तो आप कर सकते हैं defin ई अपने स्वयं के छोड़ने वाले जादू जैसे मैंने यहां किया था: http://stackoverflow.com/a/43584169/4098821 – Robbe

उत्तर

17

वर्तमान में, वहाँ ऐसी कोई सुविधा IPython नोटबुक में शामिल उपयोग करने के लिए याद है। फिर भी, अपने जीवन की तरह आसान, बनाने के लिए कुछ संभावनाएं हैं:

  • इन रुक-रुक कर कोशिकाओं के परिणाम स्टोर करने के लिए %store या शायद बेहतर %%cache जादू (एक्सटेंशन) का उपयोग करें, ताकि वे की जरूरत नहीं है पुनः गणना की जा (https://github.com/rossant/ipycache देखें)

  • कोशिकाओं से पहले एक if==0: जोड़ने आप निष्पादित करने के लिए

  • कच्चे कोशिकाओं को इन कोशिकाओं में परिवर्तित नहीं करना चाहते हैं (लेकिन आप पहले से संग्रहीत उत्पादन खो देंगे!)

(https://github.com/ipython/ipython/issues/2125 पर चर्चा)

जेकब

+1

ipycache एक्सटेंशन के बारे में जानना बहुत अच्छा है, जो कि मैं जो कर रहा हूं (मैन्युअल रूप से) के समान काम करता हूं, लेकिन केवल बेहतर! '%% कैश' जादू प्रभावी रूप से विशेष ध्वज के रूप में कार्य करता है जब "सभी चलाएं", और मैन्युअल पुन: चलाने के लिए केवल फ़ाइल को हटाने की आवश्यकता होती है। प्रतिभाशाली! धन्यवाद, जैकोब ~ – herrlich10

5

देख हालांकि यह नहीं है कि वास्तव में क्या आप देख हो रहे हैं, तो आप पूरी तरह से एक सेल के निष्पादन (जहां छोड़ करना चाहते हैं कोई कैश्ड परिणाम लोड किए गए हैं), आप एक सेल की शुरुआत में निम्नलिखित हैक जोड़ सकते हैं (यदि आप एक यूनिक्स आधारित OS का उपयोग कर रहे कल्पना करते हुए):

%%script false 
+1

कोई भी जानता है कि विंडोज़ पर ऐसा कैसे करें? – royco

+0

@royco यह विंडोज़ पर भी काम करता है –

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