Подтвердить что ты не робот

Запуск записной книжки IPython/Jupyter не в интерактивном режиме

Кто-нибудь знает, можно ли запустить IPython/Jupyter ноутбук неинтерактивно из командной строки и получить полученный файл .ipynb, сохраненный с результатами запуска. Если это еще не возможно, как трудно было бы реализовать с помощью phantomJS, что-то включить или выключить ядро ​​и что-то включить и выключить веб-сервер?

Чтобы быть более конкретным, допустим, что у меня уже есть ноутбук original.ipynb, и я хочу повторно запустить все ячейки в этом ноутбуке и сохранить результаты в новом ноутбуке new.ipynb, но сделать это с помощью одной команды в команде line, не требуя взаимодействия ни в браузере, ни для закрытия ядра или веб-сервера, и если не предполагается, что ядро ​​или веб-сервер уже запущены.

пример команды:

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

4b9b3361

Ответ 1

Да, это возможно и просто, в основном это будет ядро IPython для 2.0, я бы посоветовал посмотреть эти примеры сейчас.

[Править]

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

Это сейчас в Jupyter NbConvert. NbConvert поставляется с набором Preprocessor, которые по умолчанию отключены, два из них (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

Это (конечно) работает с ядрами не-Python, порождая ядро <insert-your-language-here>, если вы установили --profile=<your fav profile>. Преобразование может быть очень долгим, так как необходимо перезапустить ноутбук. Вы можете выполнить преобразование ноутбука в ноутбук с помощью опции --to=notebook.

Существуют различные другие параметры (тайм-аут, разрешить ошибки,...), которые могут потребоваться установить/отключить в зависимости от варианта использования. См. документацию и, конечно, jupyter nbconvert --help, --help-all или nbconvert онлайн-документации для получения дополнительной информации.

Ответ 2

Пока эта функциональность не станет частью ядра, я собрал небольшое приложение командной строки, которое делает именно то, что вы хотите. Он называется runipy, и вы можете установить его с помощью pip install runipy. источник и readme находятся в github.

Ответ 3

Чтобы охватить некоторые функции, такие как параллельные рабочие или входные параметры, вы можете установить jupyter-runner

pip install jupyter-runner

Readme on github: https://github.com/omar-masmoudi/jupyter-runner

Ответ 4

Запустите и замените оригинальный файл .ipunb:

jupyter nbconvert --ExecutePreprocessor.timeout=-1 --to notebook --inplace --execute original.ipynb

Ответ 5

Вы можете просто запустить iPython-Notebook-сервер через командную строку:

ipython notebook --pylab inline

Это запустит сервер в неинтерактивном режиме, и весь вывод будет напечатан под кодом. Затем вы можете сохранить файл .ipynb, который содержит код и вывод.