टर्मिनल से .ipynb जुपिटर नोटबुक कैसे चलाएं?


159

मेरे पास .ipynb फ़ाइल में कुछ कोड है और इसे उस बिंदु पर मिला है जहाँ मुझे वास्तव में IPyon नोटबुक की "इंटरैक्टिव" सुविधा की आवश्यकता नहीं है। मैं सिर्फ मैक टर्मिनल कमांड लाइन से इसे सीधे चलाना चाहूंगा।

मूल रूप से, अगर यह सिर्फ एक .py फ़ाइल थी, तो मेरा मानना ​​है कि मैं कमांड लाइन से सिर्फ पायथन फाइलनामेकोम कर सकता था। क्या .ipynb फाइल के लिए कुछ समान है?


कुछ इस तरह: github.com/paulgb/runipy ?
इडज

ऐसा कुछ। मैं inputअपने ipython नोटबुक में कुछ बयान देता हूं, और यह इनसे परेशान लगता है
विंसेंट

जवाबों:


107

कमांड लाइन से आप इस कमांड के साथ एक नोटबुक को अजगर में बदल सकते हैं:

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

आपको अजगर धुंध पैकेज स्थापित करना पड़ सकता है :

sudo pip install -U mistune

14
Subcommand ipython nbconvertको jupyter nbconvert के पक्ष में पदावनत किया गया है
पेंग्विनगिनेर

6
मुझे नहीं लगता कि यह उत्तर सही है। II यह महसूस करता है कि यह काम करता है लेकिन सवाल यह है कि टर्मिनल से .ipynb को कैसे चलाया जाए, न कि इसे .py में कैसे परिवर्तित किया जाए और फिर इसे चलाया जाए।
जियाकोमो

3
Nbconvert फेल हो जाएगा यदि किसी सेल को चलने में 30 से अधिक समय लगता है, तो आप जोड़ना चाह सकते हैं --ExecutePreprocessor.timeout=600
बकिगल्स्तन

नवीनतम अद्यतन इसे इस तरह से काम करता है, आपको एक HTML नोटबुक फ़ाइल बाहर निकलती हैjupyter-nbconvert --execute 03-Print\ Formatting\ with\ Strings.ipynb
b-ak

160

nbconvert आपको --executeध्वज के साथ नोटबुक चलाने की अनुमति देता है :

jupyter nbconvert --execute <notebook>

यदि आप एक नोटबुक चलाना चाहते हैं और एक नई नोटबुक तैयार करना चाहते हैं, तो आप जोड़ सकते हैं --to notebook:

jupyter nbconvert --execute --to notebook <notebook>

या यदि आप मौजूदा नोटबुक को नए आउटपुट से बदलना चाहते हैं :

jupyter nbconvert --execute --to notebook --inplace <notebook>

चूंकि यह एक बहुत लंबी कमांड है, आप एक उपनाम का उपयोग कर सकते हैं:

alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>

1
ऐसा प्रतीत होता है कि यह कोंडा आभासी वातावरण के पीछे काम नहीं करता है
रमेश-एक्स

9
यह नोटबुक को स्थिर HTML पेज
जिम डेनियल टेनिस

3
डॉक्यूमेंटेशन या रनिंग नोटबुक्स के इस या प्रोग्रामेटिक तरीके nbconvert.readthedocs.io/en/latest/…
TomDotTom

क्या यह निर्दिष्ट करने का कोई तरीका है कि किन कोशिकाओं को निष्पादित करना है? उदाहरण के लिए सेल 10 और नीचे सभी, या रेंज सेल 10 से सेल 20।
अल कॉनराड

2
इसके अलावा, यदि आपके पास लंबे समय तक चलने वाली कोशिकाएं हैं, तो आप सेट कर सकते हैं --ExecutePreprocessor.timeout=[timeout_in_seconds] ( -1बिना किसी प्रतिबंध के उपयोग करें )।
ज़ाचरी रामजी

38

आप अपने सभी कोड को निर्यात कर सकते हैं .ipynbऔर इसे .pyस्क्रिप्ट के रूप में सहेज सकते हैं । फिर आप अपने टर्मिनल में स्क्रिप्ट चला सकते हैं।

कोड निर्यात नमूना

आशा करता हूँ की ये काम करेगा।


यह उत्तर (y)
कॉलिनमैक

3
मूल प्रश्न का उत्तर नहीं देता है
baxx

14

अपने टर्मिनल रन ipython में:

ipython

फिर अपनी स्क्रिप्ट का पता लगाएं और वहां डालें:

%run your_script.ipynb

यह कैसे एक खोल स्क्रिप्ट में डाला जा सकता है
baxx

1
यह सबसे व्यावहारिक जवाब है।
एड विलियम्स

10

इसके बजाय नए संस्करण के लिए:

ipython nbconvert --to python <YourNotebook>.ipynb

आप ipython के ज्यूपिटर इंस्टेंड का उपयोग कर सकते हैं:

jupyter nbconvert --to python <YourNotebook>.ipynb

यह सवाल का जवाब कैसे है?
बैक्सक्स

4

बेहतर दृश्यता के लिए लेखक द्वारा उद्धृत टिप्पणी के साथ अपडेट करें:

लेखक का ध्यान दें "यह परियोजना जुपिटर के निष्पादित एपीआई से पहले शुरू हुई थी, जो अब कमांड-लाइन से नोटबुक चलाने के लिए अनुशंसित तरीका है। रनिपी पदावनत और अचयनित पर विचार करें।" - सेबस्टियन पाल्मा

टर्मिनल पर अपना कोड चलाने की अनुमति देने वाली रनिपी लाइब्रेरी स्थापित करें

pip install runipy

बस अपने कोड संकलक के बाद:

runipy <YourNotebookName>.ipynb

आप क्रोनजोब को भी आजमा सकते हैं। सारी जानकारी यहाँ है


11
लेखक का ध्यान दें "यह परियोजना जुपिटर के निष्पादित एपीआई से पहले शुरू हुई थी, जो अब कमांड-लाइन से नोटबुक चलाने के लिए अनुशंसित तरीका है। रनिपी पदावनत और अचयनित पर विचार करें।"
सेबस्टियन पालमा

3

मेरे मामले में, मेरे लिए सबसे उपयुक्त आदेश था:

jupyter nbconvert --execute --clear-output <notebook>.ipynb

क्यों? यह कमांड अतिरिक्त फाइल (केवल एक .pyफाइल की तरह ) नहीं बनाता है और नोटबुक के निष्पादित होने के बाद कोशिकाओं का आउटपुट ओवरराइट हो जाता है।

यदि आप चलाते हैं:

jupyter nbconvert --help

--clear-output वर्तमान फ़ाइल का स्पष्ट आउटपुट और मौजूदा नोटबुक को अधिलेखित करने के स्थान पर सहेजें।


0

आप boarएक अजगर कोड के भीतर अपनी नोटबुक चलाने के लिए पैकेज का उपयोग कर सकते हैं ।

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

यदि आप अपनी नोटबुक अपडेट करते हैं, तो आपको इसे एक अजगर फ़ाइल में फिर से नहीं बदलना होगा।


अधिक जानकारी पर:

https://github.com/alexandreCameron/boar/blob/master/USAGE.md


0

टर्मिनल रन से

jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb

डिफ़ॉल्ट समय सीमा 30 सेकंड है। -1 प्रतिबंध हटाता है।

यदि आप आउटपुट नोटबुक को एक नई नोटबुक में सहेजना चाहते हैं, तो आप ध्वज का उपयोग कर सकते हैं --output my_new_nb.ipynb


0

मुझे भी यही समस्या थी और मुझे पिपरमिल मिला । दूसरों के समाधान के खिलाफ लाभ यह है कि आप परिणाम देख सकते हैं जबकि नोटबुक चल रही है। मुझे यह सुविधा दिलचस्प लगती है जब नोटबुक बहुत लंबी होती है। यह इस्तेमाल में बहुत आसान है:

pip install papermill
papermill notebook.ipynb output.ipynb

इसके पास अन्य उपयोगी विकल्प भी हैं, जैसे आउटपुट फाइल को अमेजन एस 3, गूगल क्लाउड आदि में सेव करने के लिए, अधिक जानकारी के लिए पेज देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.