Як запустити .ipynb Jupyter Notebook з терміналу?


159

У мене є якийсь код у файлі .ipynb, і я отримав його до того моменту, коли мені не дуже потрібна "інтерактивна" особливість ноутбука IPython. Я хотів би просто запустити його прямо з командного рядка Mac Terminal.

В основному, якби це був просто .py файл, я вважаю, що міг би просто зробити python filename.py з командного рядка. Чи є щось подібне для файлу .ipynb?


Щось подібне: github.com/paulgb/runipy ?
idjaw

Щось схоже. У inputмоєму зошиті ipython у мене є кілька тверджень, і, схоже, проблеми з цим
Вінсент

Відповіді:


107

З командного рядка ви можете перетворити ноутбук у python за допомогою цієї команди:

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

Можливо, вам доведеться встановити пакунок python misune :

sudo pip install -U mistune

14
Підкоманда ipython nbconvertзастаріла на користь jupyter nbconvert
PenguinEngineer

6
Я не вважаю, що ця відповідь є правильною. Я розумію, що це працює, але питання полягає в тому, як запустити .ipynb з терміналу, а не як його перетворити в .py і потім запустити.
Джакомо

3
Nbconvert вийде з ладу, якщо для запуску будь-якої комірки більше 30 секунд, ви можете додати її --ExecutePreprocessor.timeout=600.
bckygldstn

Останні оновлення змушують це працювати так, ви отримуєте 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
Схоже, це не працює за віртуальним середовищем conda
Рамеш-X

9
Це перетворює ноутбук на статичну HTML-сторінку
Джим Даніель Теуніс

3
Документацію або це та програмні способи ведення ноутбуків можна знайти на nbconvert.readthedocs.io/en/latest/…
TomDotTom

Чи є спосіб вказати, які комірки виконувати? Наприклад клітинка 10 і все нижче, або комірка діапазону 10 до клітини 20.
Аль Конрад,

2
Крім того, якщо у вас довго працюють клітини, ви можете встановити --ExecutePreprocessor.timeout=[timeout_in_seconds] (використовувати -1без обмежень).
Zaccharie Ramzi

38

Ви можете експортувати з нього весь код .ipynbі зберегти його як .pyсценарій. Потім ви можете запустити скрипт у своєму терміналі.

зразок експорту коду

Сподіваюся, це допомагає.


Ця відповідь (у)
ColinMac

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

як це відповідь на запитання?
baxx

4

Оновлення цитованим коментарем автора для кращої наочності:

Примітка автора "Цей проект розпочався ще до запуску API Юпітера, який зараз є рекомендованим способом запуску ноутбуків із командного рядка. Розгляньте, що рупія застаріла та не збережена". - Себастьян Пальма

Встановіть бібліотеку runipy, яка дозволяє запускати ваш код на терміналі

pip install runipy

Після просто компілятора вашого коду:

runipy <YourNotebookName>.ipynb

Ви також можете спробувати cronjob. Вся інформація тут


11
Примітка автора "Цей проект розпочався до початку API API Юпітера, який зараз є рекомендованим способом запуску зошитів із командного рядка. Розгляньте, що рупія застаріла та не збережена".
Себастьян Пальма

3

У моєму випадку команда, яка мені найбільше підходила:

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

Чому? Ця команда не створює зайвих файлів (як .pyфайл), і вихід комірок перезаписується кожного разу, коли ноутбук виконується.

Якщо ви запускаєте:

jupyter nbconvert --help

- ядерний вихід Очистити вихід поточного файлу та зберегти його на місці, перезаписавши наявний ноутбук.


0

Ви також можете використовувати boarпакет для запуску свого ноутбука в коді python.

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

Якщо ви оновите свій ноутбук, вам не доведеться знову конвертувати його у файл python.


Більше інформації на:

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

Також є й інші зручні варіанти, як збереження вихідного файлу в Amazon S3, Google Cloud тощо. Для отримання додаткової інформації див. Сторінку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.