it-swarm.dev

تشغيل دفتر IPython / Jupyter بدون تفاعل

لا أحد يعرف ما إذا كان من الممكن تشغيل دفتر IPython/Jupyter بشكل غير تفاعلي من سطر الأوامر وحفظ ملف .ipynb الناتج مع نتائج التشغيل. إذا لم يكن ذلك ممكنًا بالفعل ، فما مدى صعوبة تطبيقه باستخدام phantomJS ، وشيء لتشغيل وإيقاف تشغيل النواة ، وشيء لتشغيل خادم الويب وإيقاف تشغيله؟

لتكون أكثر تحديداً ، دعنا نفترض أن لدي بالفعل دفتر ملاحظات original.ipynb وأريد إعادة تشغيل جميع الخلايا الموجودة في هذا الكمبيوتر الدفتري وحفظ النتائج في دفتر ملاحظات جديد new.ipynb ، لكن قم بذلك باستخدام أمر واحد على سطر الأوامر دون الحاجة إلى التفاعل في إما في سطر الأوامر المتصفح أو لإغلاق kernel أو خادم الويب ، وافتراض عدم تشغيل kernel أو خادم الويب بالفعل.

مثال الأمر:

$ ipython notebook run original.ipynb --output=new.ipynb

70
davidshinn

نعم هذا ممكن ، وسهل ، سيكون (في الغالب) في IPython core لـ 2.0 ، أود أن أقترح النظر في تلك الأمثلة في الوقت الحالي.

[تصحيح]

$ jupyter nbconvert --to notebook --execute original.ipynb --output=new.ipynb

هي عليه الآن في Jupyter NbConvert. يأتي NbConvert مع مجموعة من Preprocessors التي تم تعطيلها بشكل افتراضي ، اثنان منهم (ClearOutputPreprocessor و ExecutePreprocessor) مهمان. يمكنك إما تمكينهم في ملف (ملفات) التهيئة (المحلية | العالمية) الخاص بك عبر c.<PreprocessorName>.enabled=True (الأحرف الكبيرة بيثون) ، أو في سطر الأوامر مع --ExecutePreprocessor.enabled=True احتفظ ببقية الأمر كالمعتاد.

يحتوي --ExecutePreprocessor.enabled=True على اسم مستعار --execute مناسب يمكن استخدامه في الإصدار الأخير من NbConvert. يمكن دمجه مع --inplace إذا كنت ترغب في ذلك

على سبيل المثال ، قم بالتحويل إلى html بعد تشغيل دفتر الملاحظات مقطوع الرأس:

$ jupyter nbconvert --to=html --execute RunMe.ipynb

التحويل إلى PDF بعد تجريد المخرجات

$ ipython nbconvert --to=pdf --ClearOutputPreprocessor.enabled=True RunMe.ipynb

يعمل هذا (بالطبع) مع حبات غير بيثون عن طريق وضع رمز <insert-your-language-here> kernel ، إذا قمت بتعيين --profile=<your fav profile>. يمكن أن يكون التحويل طويلًا لأنه يحتاج إلى إعادة تشغيل دفتر الملاحظات. يمكنك القيام بتحويل دفتر الملاحظات إلى دفتر الملاحظات باستخدام الخيار --to=notebook.

هناك العديد من الخيارات الأخرى (المهلة ، والسماح بالأخطاء ، ...) التي قد تحتاج إلى ضبط/إلغاء تعيين حسب حالة الاستخدام. راجع الوثائق وبالطبع jupyter nbconvert --help أو --help-all أو nbconvert الوثائق عبر الإنترنت لمزيد من المعلومات.

61
Matt

حتى تصبح هذه الوظيفة جزءًا أساسيًا ، قمت بتجميع تطبيق سطر أوامر صغير يقوم بما تريد. يطلق عليه اسم runipy ويمكنك تثبيته باستخدام pip install runipy. المصدر والملف التمهيدي موجودان على github .

20
paul

لتغطية بعض الميزات مثل العمال المتوازيين أو معلمات الإدخال ، يمكنك تثبيت jupyter-runner

pip install jupyter-runner

الملف التمهيدي على github: https://github.com/omar-masmoudi/jupyter-runner

1
Omar