Как запустить ipynb скрипт в windows

В статье представлены базовые понятия о IPython и Jupyter Notebook, даны: описание интерфейса, примеры работы и магические команды

IPython представляет собой мощный инструмент для работы с языком Python. Базовые компоненты IPython – это интерактивная оболочка для с широким набором возможностей и ядро для Jupyter. Jupyter notebook является графической веб-оболочкой для IPython, которая расширяет идею консольного подхода к интерактивным вычислениям.

Основные отличительные особенности данной платформы – это комплексная интроспекция объектов, сохранение истории ввода на протяжении всех сеансов, кэширование выходных результатов, расширяемая система “магических” команд, логирование сессии, дополнительный командный синтаксис, подсветка кода, доступ к системной оболочке, стыковка с pdb отладчиком и Python профайлером.

IPython позволяет подключаться множеству клиентов к одному вычислительному ядру и, благодаря своей архитектуре, может работать в параллельном кластере.

В Jupyter notebook вы можете разрабатывать, документировать и выполнять приложения на языке Python, он состоит из двух компонентов: веб-приложение, запускаемое в браузере, и ноутбуки – файлы, в которых можно работать с исходным кодом программы, запускать его, вводить и выводить данные и т.п.

Веб приложение позволяет:

  • редактировать Python код в браузере, с подсветкой синтаксиса, автоотступами и автодополнением;
  • запускать код в браузере;
  • отображать результаты вычислений с медиа представлением (схемы, графики);
  • работать с языком разметки Markdown и LaTeX.

Ноутбуки – это файлы, в которых сохраняются исходный код, входные и выходные данные, полученные в рамках сессии. Фактически, он является записью вашей работы, но при этом позволяет заново выполнить код, присутствующий на нем. Ноутбуки можно экспортировать в форматы PDF, HTML.

Установка и запуск

Jupyter Notebook входит в состав Anaconda. Описание процесса установки можно найти в первом уроке. Для запуска Jupyter Notebook перейдите в папку Scripts (она находится внутри каталога, в котором установлена Anaconda) и в командной строке наберите:

> ipython notebook

В результате будет запущена оболочка в браузере.

Окно Jupyter notebook

Примеры работы

Будем следовать правилу: лучше один раз увидеть… Рассмотрим несколько примеров, выполнив которые, вы сразу поймете принцип работы с Jupyter notebook.

Запустите Jupyter notebook и создайте папку для наших примеров, для этого нажмите на New в правой части экрана и выберите в выпадающем списке Folder.

Создание папки в Jupyter notebook

По умолчанию папке присваивается имя “Untitled folder”, переименуем ее в “notebooks”: поставьте галочку напротив имени папки и нажмите на кнопку “Rename”.

Переименование папки в Jupyter notebook

Зайдите в эту папку и создайте в ней ноутбук, воспользовавшись той же кнопкой New, только на этот раз нужно выбрать “Python [Root]”.

Создание notebook

В результате будет создан ноутбук.

Jupyter notebook.

Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:

Jupyter notebook cell

Если это код Python, то на панели инструментов нужно выставить свойство “Code”.

Выбор типа ячейки "Code"

Если это Markdown текст – выставить “Markdown”.

Выбор типа ячейки "Markdown"

Для начал решим простую арифметическую задачу: выставите свойство “Code”, введите в ячейке “2 + 3” без кавычек и нажмите Ctrl+Enter или Shift+Enter, в первом случае введенный вами код будет выполнен интерпретатором Python, во втором – будет выполнен код и создана новая ячейка, которая расположится уровнем ниже так, как показано на рисунке.

3+2 пример в Jupyter notebook

Если у вас получилось это сделать, выполните еще несколько примеров.

Пример работы в Jupyter notebook

У каждого ноутбука есть имя, оно отображается в верхней части экрана. Для изменения имени нажмите на его текущее имя и введите новое.

Изменение имени notebook

Из элементов интерфейса можно выделить, панель меню:

Панель меню Jupyter notebook

панель инструментов:

Панель инструментов Jupyter notebook

и рабочее поле с ячейками:

Рабочее поле с ячейками

Ноутбук может находиться в одном из двух режимов – это режим правки (Edit mode) и командный режим (Command mode). Текущий режим отображается на панели меню в правой части, в режиме правки появляется изображение карандаша, отсутствие этой иконки значит, что ноутбук находится в командном режиме.

Режим редактирования ячейки

Для открытия справки по сочетаниям клавиш нажмите “Help->Keyboard Shortcuts”

Сочетания клавиш в Jupyter notebook

В самой правой части панели меню находится индикатор загруженности ядра Python. Если ядро находится в режиме ожидания, то индикатор представляет собой окружность.

Python kernel остановлен

Если оно выполняет какую-то задачу, то изображение измениться на закрашенный круг.

Python kernel в работе

Запуск и прерывание выполнения кода

Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт Kernel -> Interrupt.

Для добавления новой ячейки используйте Insert->Insert Cell Above и Insert->Insert Cell Below.

Для запуска ячейки используете команды из меню Cell, либо следующие сочетания клавиш:

Ctrl+Enter – выполнить содержимое ячейки.

Shift+Enter – выполнить содержимое ячейки и перейти на ячейку ниже.

Alt+Enter – выполнить содержимое ячейки и вставить новую ячейку ниже.

Как сделать ноутбук доступным для других людей?

Существует несколько способов поделиться своим ноутбуком с другими людьми, причем так, чтобы им было удобно с ним работать:

  • передать непосредственно файл ноутбука, имеющий расширение “.ipynb”, при этом открыть его можно только с помощью Jupyter Notebook;
  • сконвертировать ноутбук в html;
  • использовать https://gist.github.com/;
  • использовать http://nbviewer.jupyter.org/.

Вывод изображений в ноутбуке

Печать изображений может пригодиться в том случае, если вы используете библиотеку matplotlib для построения графиков. По умолчанию, графики не выводятся в рабочее поле ноутбука. Для того, чтобы графики отображались, необходимо ввести и выполнить следующую команду:

%matplotlib inline

Пример вывода графика представлен на рисунке ниже.

Пример вывода графика

Магия

Важной частью функционала Jupyter Notebook является поддержка магии. Под магией в IPython понимаются дополнительные команды, выполняемые в рамках оболочки, которые облегчают процесс разработки и расширяют ваши возможности. Список доступных магических команд можно получить с помощью команды

%lsmagic

Список magic команд

Для работы с переменными окружения используется команда %env.

Работа с %env

Запуск Python кода из “.py” файлов, а также из других ноутбуков – файлов с расширением “.ipynb”, осуществляется с помощью команды %run.

Работа с %run

Для измерения времени работы кода используйте %%time и %timeit.

%%time позволяет получить информацию о времени работы кода в рамках одной ячейки.

Работа с %%time

%timeit запускает переданный ей код 100000 раз (по умолчанию) и выводит информацию среднем значении трех наиболее быстрых прогонах.

Работа с %timeit

Информацию по остальным магическим командам можете найти здесь:

https://ipython.org/ipython-doc/3/interactive/magics.html

https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

Интересные примеры ноутбуков, в которых довольно полно раскрыты возможности Jupyter Notebook можно найти в ресурсах, перечисленных ниже.

http://nb.bianp.net/sort/views/

https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-and-IPython-Notebooks

https://blog.dominodatalab.com/interactive-dashboards-in-jupyter/

http://www.clawpack.org/notebooks.html

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Книга: Pandas. Работа с данными

<<< Python. Урок 5. Условные операторы и циклы   Python. Урок 7. Работа со списками (list) >>>

In this article, I will tell you how to invoke a python script file (.py) from the Jupyter notebook file (.ipynb) and ipython console. But first, you should create a python virtual environment in Anaconda and start Jupyter notebook server, you can read the article How To Start Jupyter Notebook In Anaconda Python Virtual Environment to learn more.

1. Invoke Python Script File From Jupyter Notebook.

  1. Create a jupyter notebook file with the name InvokePythonScript.ipynb. ( There are also 2 python script files list_file.py and list_file_path.py which we will introduce later. )
  2. Click file InvokePythonScript.ipynb to edit it.
  3. Add the first line cell and input below source code. Below ipython code will create a python script file with name list_file.py. When you run this python script file in jupyter notebook, it will print out all the files and directories’ names in the folder which you pass to it as a command-line input argument. If you do not pass any folder name as the command line input arguments when you invoke list_file.py, it will list the files and directories’ names in the current directory.
    %%writefile list_file.py
    
    # use ipython magic command %%writefile to create a python script file and write below script content to it.
    # import two python standard module. 
    import sys
    import os
    
    # set dir_name value to current directory by default.
    dir_name = './'
    
    # if user input an argument.
    if len(sys.argv) > 1:
        # give the first argument value to a local variable, the argument value should be a directory name.
        dir_name = sys.argv[1]
    
        
    # get all the dir_name directory contained files in a list
    files_list = os.listdir(dir_name)
        
    # loop in the files_list.
    for file in files_list:
        # print out file name in the standard output.
        print(file)
  4. Select the above line cell to make it focus, then click the Run button at the top to run it, then you can see a message is printed, the message is Writing list_file.py ( if list_file.py do not exist ) or Overwriting list_file.py ( if list_file.py exist ).
  5. Now you can find the list_file.py has been created or overwrote in your jupyter notebook webserver started folder.
  6. Add another line cell and write the below code in it. Focus on the below line and click the Run button, you can see all files and folders’ names listed under the code line.
    %run -i list_file.py
    
    .ipynb_checkpoints
    InvokePythonScript.ipynb
    list_file.py
    list_file_path.py
  7. Create another python file with the IDLE editor or any text editor, save the python file as list_file_path.py, it is saved in the same directory with list_file.py. When you run list_file_path.py, it will first print out each command-line argument when you invoke it and then show all the file or folder’s absolute path in the folder that you pass to the python file.
    # import system module.
    import sys
    import os
    
    # set dir_name's value to current folder by default.
    dir_name = './'
    
    # if invoke this scrpit with more than 1 argument.
    if len(sys.argv) > 1:
    
        i = 1
        # loop for all the args passed when this .py file is invoked.
        for arg in sys.argv:
                print('arg',i,'=',arg)
                i = i + 1
    
        # assign the first argument value to local variable dir_name. 
        dir_name = sys.argv[1]
    
    # list all the files in the dir_name directory and return them in a list.
    files_list = os.listdir(dir_name)
        
    # loop in above files_list
    for file in files_list:
        # print out each file absolute path.
        print(os.path.abspath(file))
    
  8. Add a new line cell in jupyter notebook, and run the below command in it, then you will get the current folder contained all files or folders’ absolute path listed.
    %run list_file_path.py ./
    
    arg 1 = list_file_path.py
    arg 2 = ./
    C:WorkSpace.ipynb_checkpoints
    C:WorkSpaceInvokePythonScript.ipynb
    C:WorkSpacelist_file.py
    C:WorkSpacelist_file_path.py

2. Invoke Python Script File From Ipython Command-Line.

  1. Click the green triangle button of the python virtual environment in the Anaconda environments list, then click the Open Terminal menu item.
  2. Then go to the python script file saved directory use cd command, and then run command ipython -i list_file.py like below. It will print out all files and folders name in the current folder.
    (env_jupyter_example) C:Userssong zhao>cd C:WorkSpaceJupyterExampleProjectJupyterSlideBarExample
    
    (env_jupyter_example) C:WorkSpaceJupyterExampleProjectJupyterSlideBarExample>DIR
     Volume in drive C has no label.
     Volume Serial Number is E6EE-6486
    
     Directory of C:WorkSpaceJupyterExampleProjectJupyterSlideBarExample
    
    07/25/2020  09:48 PM    <DIR>          .
    07/25/2020  09:48 PM    <DIR>          ..
    07/25/2020  09:06 PM    <DIR>          .ipynb_checkpoints
    07/25/2020  09:48 PM             2,682 InvokePythonScript.ipynb
    07/25/2020  09:47 PM               665 list_file.py
    07/21/2020  09:31 AM               708 list_file_path.py
                   3 File(s)          4,055 bytes
                   3 Dir(s)  69,612,453,888 bytes free
    
    (env_jupyter_example) C:WorkSpaceJupyterExampleProjectJupyterSlideBarExample>ipython -i list_file.py
    Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
    Type 'copyright', 'credits' or 'license' for more information
    IPython 7.12.0 -- An enhanced Interactive Python. Type '?' for help.
    .ipynb_checkpoints
    InvokePythonScript.ipynb
    list_file.py
    list_file_path.py
    
    In [1]: exit()
    
    (env_jupyter_example) C:WorkSpaceJupyterExampleProjectJupyterSlideBarExample>

Jupyter Notebook — это среда разработки для написания и выполнения кода Python. Некоммерческая организация Project Jupyter с открытым исходным кодом поддерживает программное обеспечение. Он состоит из последовательности ячеек, каждая из которых содержит небольшой пример кода или документацию в формате Markdown. Разработчики могут выполнить ячейку и увидеть ее вывод сразу под кодом. Гениальный дизайн создает мгновенную петлю обратной связи, позволяя программисту запускать свой код и вносить в него соответствующие изменения.

Ячейки Jupyter Notebook также поддерживают аннотации, аудиофайлы, видео, изображения, интерактивные диаграммы и многое другое. Это еще одно важное преимущество программного обеспечения; вы можете рассказать историю с вашим кодом. Читатели могут видеть шаги, которые вы выполнили, чтобы получить результат.

Вы можете импортировать пакеты Python, такие как pandas, NumPy или TensorFlow, прямо в Блокнот.

Jupyter Notebook – это веб-оболочка для Ipython (ранее называлась IPython Notebook). Это веб-приложение с открытым исходным кодом, которое позволяет создавать и обмениваться документами, содержащими живой код, уравнения, визуализацию и разметку.
Первоначально IPython Notebook ограничивался лишь Python в качестве единственного языка. Jupyter Notebook позволил использовать многие языки программирования, включая Python, R, Julia, Scala и F#.

Установка/инсталляция Jupyter Notebook — pip3 install jupyter

Install Jupyter Notebook на Ubuntu 20.14

Установка классического блокнота Jupyter без виртуальной среды осуществляется очень просто. Для этого необходимо запустить 2 команды:

pip install notebook

После этого на вашей рабочей машине установится jupyter notebook. Теперь его необходимо запустить командой:

jupyter notebook

Откроется окно по адресу localhost:8888/

Install Jupyter Notebook на Windows

Аналогично без виртуальной среды блокнот Jupyter можно установить и на винду. Запускаем команду:

pip install notebook

и после завершения установки запускаем команду:

jupyter-notebook

Установка Jupyter Notebook в Docker через Docker-Compose

todo

Установка Jupyter Notebook через virtual env на Windows

Создаем директорию проекта, например:

D:#python##envjupyter

Далее в этой директории создаем виртуальную среду с помощью команды:

python3 -m venv venv

или

python -m venv venv

Далее переходим в директорию D:#python##envjupytervenvScripts и запускаем activate. Должна активироваться среда venv:

D:#python##envjupytervenvScripts>activate 
(venv) D:#python##envjupytervenvScripts>

Далее запустите в активированной виртуальной среде venv установку jupyter notebook:

(venv) D:#python##envjupytervenvScripts>pip install notebook
Collecting notebook
  Using cached notebook-6.4.10-py3-none-any.whl (9.9 MB)
Collecting jupyter-client>=5.3.4
  Downloading jupyter_client-7.2.2-py3-none-any.whl (130 kB)
     |████████████████████████████████| 130 kB 128 kB/s
Collecting nbconvert>=5
  Using cached nbconvert-6.4.5-py3-none-any.whl (561 kB)
.....
.....
.....
Installing collected packages: .....
Successfully installed .....

После завершения установки внутри venv нужно подняться в корень директории jupyter и запустить jupyter-notebook:

(venv) D:#python##envjupytervenvScripts>cd ..

(venv) D:#python##envjupytervenv>cd ..

(venv) D:#python##envjupyter>jupyter-notebook

[I 06:14:46.674 NotebookApp] Serving notebooks from local directory: D:#python##envjupyter
[I 06:14:46.674 NotebookApp] Jupyter Notebook 6.4.10 is running at:
[I 06:14:46.678 NotebookApp] http://localhost:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1
[I 06:14:46.681 NotebookApp]  or http://127.0.0.1:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1
[I 06:14:46.682 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 06:14:46.835 NotebookApp]
    To access the notebook, open this file in a browser:
        file:///C:/Users/Ivan/AppData/Roaming/jupyter/runtime/nbserver-1952-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1
     or http://127.0.0.1:8888/?token=443ed7feca651de8172b6f043ea0cf42645ddbc406a784d1

Выглядит это так:

Откроется окно в браузере:

Повторный запуск среды осуществляется из виртуальной среды (сначала ее нужно активировать).

Установка Jupyter Notebook через virtual env на Ubuntu 20.14

# Создаем директорию проекта с виртуальной средой
mkdir jupyter-env

# Переходим внутрь проекта
cd jupyter-env

# Создаем среду myenv
python3 -m venv myenv

# Активируем среду
source myenv/bin/activate

# Запускаем установку jupyter 
pip install notebook

# Запускаем jupyter notebook внутри venv
jupyter notebook

Как устроен Jupyter Notebook. Как работает Jupyter Notebook

Общий вид Jupyter Notebook

Сначала пользователь взаимодействует с браузером, после чего на сервер Notebook отправляется запрос. Это может быть запрос HTTP или WebSocket.

Если код пользователя должен быть выполнен, сервер ноутбука отправляет его ядру (kernel) в сообщениях ZeroMQ. Ядро возвращает результаты выполнения.

Затем сервер Notebook возвращает пользователю HTML-страницу. Когда пользователь сохраняет документ, он отправляется из браузера на сервер Notebook. Сервер сохраняет его на диске в виде файла JSON с .ipynb расширением. Этот файл блокнота содержит код, выходные данные и примечания в формате markdown.

Ядро (Kernel) ничего не знает о документе блокнота: оно просто получает отправленные ячейки кода для выполнения, когда пользователь запускает их.

Блокноты Jupyter — это структурированные данные, которые представляют ваш код, метаданные, контент и выходные данные.

IPython Kernel (Ядро IPython)

Когда мы обсуждаем IPython, мы говорим о двух основных ролях:

  • Terminal IPython как знакомый REPL.
  • Ядро IPython, которое обеспечивает вычисления и связь с внешними интерфейсами, такими как ноутбук.

REPL – это форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки (REPL, от англ. Read-Eval-Print-Loop — цикл «чтение — вычисление — вывод»), которая поставляется вместе с Python. Чтобы запустить IPython, просто выполните команду ipython из командной строки/терминала.

Terminal IPython

Когда вы набираете ipython, вы получаете исходный интерфейс IPython, работающий в терминале. Он делает что-то вроде этого (упрощенная модель):

while True:
    code = input(">>> ")
    exec(code)

Эту модель часто называют REPL или Read-Eval-Print-Loop.

IPython Kernel

Все остальные интерфейсы — notebook, консоль Qt, ipython console в терминале и сторонние интерфейсы — используют Python Kernel.

Python Kernel — это отдельный процесс, который отвечает за выполнение пользовательского кода и такие вещи, как вычисление possible completions (возможных завершений). Внешние интерфейсы, такие как блокнот или консоль Qt, взаимодействуют с ядром IPython, используя сообщения JSON, отправляемые через сокеты ZeroMQ (протокол, используемый между интерфейсами и ядром IPython).

Основной механизм выполнения ядра используется совместно с терминалом IPython:

Jupyter Lab

Проект Jupyter приобрел большую популярность не только среди специалистов по данным, но и среди инженеров-программистов. На тот момент Jupyter Notebook был предназначен не только для работы с ноутбуком, поскольку он также поставлялся с веб-терминалом, текстовым редактором и файловым браузером. Все эти компоненты не были объединены вместе, и сообщество пользователей начало выражать потребность в более интегрированном опыте.

На конференции SciPy 2016 был анонсирован проект JupyterLab. Он был описан как естественная эволюция интерфейса Jupyter Notebook.

Кодовая база Notebook устарела, и ее становилось все труднее расширять. Стоимость поддержки старой кодовой базы и реализации новых функций поверх нее постоянно росла.

Разработчики учли весь опыт работы с Notebook в JupyterLab, чтобы создать надежную и чистую основу для гибкого интерактивного взаимодействия с компьютером и улучшенного пользовательского интерфейса.

Ценность Jupyter Notebook/JupyterLab для аналитиков данных

Разница между профессией data analyst/data scientist от разработки ПО заключается в отсутствии чёткого ТЗ на старте. Правильная постановка задачи в сфере анализа данных — это уже половина решения.

Первым этапом производится детальный анализ Initial Data (исходных данных) или Exploratory Data Analysis (Разведочный анализ данных), затем выдвигается одна или несколько гипотез. Эти шаги требуют значительных временных ресурсов.

Поэтому, понимание, как организовать процесс разработки (что нужно делать в первую очередь и чем можно будет пренебречь или исключить), начинает приходить во время разработки.

Исходя из этих соображений тратить силы на скурпулёзное и чистый код, git и т.д. бессмысленно — в первую очередь становится важным быстро создавать прототипы решений, ставить эксперименты над данными. Помимо этого, достигнутые результаты и обнаруженные инсайты или необычные наблюдения над данными приходится итерационно презентовать коллегам и заказчикам (внешним или внутренним). Jupyter Notebook или JupyterLab позволяет выполнять описанные задачи с помощью доступного функционала без дополнительных интеграций:

По факту, JupyterLab — это лабораторный журнал 21 века с элементами интерактивности, в котором вы можете оформить результаты работы с данными в формате markdown с использованием формул из latex. Также в JupyterLab можно писать и запускать код, вставлять в отчет картинки, отрисовывать графики, таблицы, дашборды.

Установка JupyterLab на Ubuntu 20.14

Установка производится одной командой

pip install jupyterlab

После инсталляции запустите команду

jupyter-lab

И откроется интерфейс:

Установка JupyterLab на Windows

Инсталляция и запуск на винде производится аналогично, как и на Ubuntu, командой pip instal jupyterlab.

В чем разница между Jupyter Notebook и JupyterLab?

Jupyter Notebook — это интерактивная вычислительная среда с веб-интерфейсом для создания документов Jupyter Notebook. Он поддерживает несколько языков, таких как Python (IPython), Julia, R и т.д., и в основном используется для анализа данных, визуализации данных и дальнейших интерактивных исследовательских вычислений.

JupyterLab — это пользовательский интерфейс нового поколения, включая ноутбуки. Он имеет модульную структуру, в которой вы можете открыть несколько записных книжек или файлов (например, HTML, Text, Markdowns и т.д.) в виде вкладок в одном окне. Он предлагает больше возможностей, подобных IDE.

Новичку я бы посоветовал начать с Jupyter Notebook, так как он состоит только из файлового браузера и представления редактора (Notebook). Это проще в использовании. Если вам нужны дополнительные функции, переключитесь на JupyterLab. JupyterLab предлагает гораздо больше функций и улучшенный интерфейс, который можно расширить с помощью расширений: JupyterLab Extensions.

Начиная с версии 3.0, JupyterLab также поставляется с визуальным отладчиком, который позволяет интерактивно устанавливать точки останова, переходить к функциям и проверять переменные.

JupyterLab — это совершенно фантастический инструмент как для создания plotly фигур, так и для запуска полных приложений Dash как встроенных, в виде вкладок, так и внешних в браузере.

Основы работы и обзор функциональности Jupyter Notebook

Из чего состоит Jupiter Notebook

Если щелкнуть по файлу с расширением .ipynb, откроется страница с Jupiter Notebook.

Отображаемый Notebook представляет собой HTML-документ, который был создан Jupyter и IPython. Он состоит из нескольких ячеек, которые могут быть одного из трех типов:

  • Сode (активный программный код),
  • Markdown (текст, поясняющий код, более развернутый, чем комментарий),
  • Raw NBConvert (пассивный программный код).

Jupyter запускает ядро IPython для каждого Notebook.

Ячейки, содержащие код Python, выполняются внутри этого ядра и результаты добавляются в тетрадку в формате HTML.

Двойной щелчок по любой из этой ячеек позволит отредактировать ее. По завершении редактирования содержимого ячейки, нажмите Shift + Enter, после чего Jupyter/IPython проанализирует содержимое и отобразит результаты.

Если выполняемая ячейка является ячейкой кода, это приведет к выполнению кода в ячейке и отображению любого вывода непосредственно под ним. На это указывают слова «In» и «Out», расположенные слева от ячеек.

Магические функции Jupiter Notebook

Все magic-функции (их еще называют magic-командами) начинаются

  • со знака %, если функция применяется к одной строке,
  • и %%, если применяется ко всей ячейке Jupyter.

Чтобы получить представление о времени, которое потребуется для выполнения функции, приведенной выше, мы воспользуемся функцией %timeit.

%timeit

%timeit – это magic-функция, созданная специально для работы с тетрадками Jupyter. Она является полезным инструментом, позволяющим сравнить время выполнения различных функций в одной и той же системе для одного и того же набора данных.

%matplotlib inline

%matplotlib inline позволяет выводит графики непосредственно в тетрадке.

На экранах с высоким разрешением типа Retina графики в тетрадках Jupiter по умолчанию выглядят размытыми, поэтому для улучшения резкости используйте

%config InlineBackend.figure_format = 'retina'

после %matplotlib inline.

jupyter markdown

туду

jupyter server

туду

jupyter config

туду

jupyter hub

JupyterHub: позволяет предоставлять нескольким пользователям (группам сотрудников) доступ к Notebook и другим ресурсам. Это может быть полезно для студентов и компаний, которые хотят, чтобы группа (группы) имела доступ к вычислительной среде и ресурсам и использовала их без необходимости установки и настройки. Управление которыми могут осуществлять системные администраторы. Доступ к отдельным блокнотам и JupyterLab можно получить через Hub. Hub может работать в облаке или на собственном оборудовании группы.

jupyter команды

туду

pycharm jupyter

туду

Виджеты Jupyter

Виджеты можно использовать для интерактивных элементов в блокнотах (например, ползунок).

Jupyter Widgets — это событийные объекты Python, которые имеют представление в браузере, часто в виде элемента управления, такого как ползунок, текстовое поле и т. д.

Вы можете использовать виджеты для создания интерактивных графических интерфейсов для своих ноутбуков.

Вы также можете использовать виджеты для синхронизации информации с сохранением состояния и без сохранения состояния между Python и JavaScript.

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

Почему отображение одного и того же виджета дважды работает?

Виджеты представлены в бэкенде одним объектом. Каждый раз, когда отображается виджет, во внешнем интерфейсе создается новое представление того же объекта. Эти представления называются представлениями.

Несколько самых популярных виджетов:

Чтобы начать использовать библиотеку, нам нужно установить расширение ipywidgets. Для pip это будет двухэтапный процесс:

  1. установить и
  2. включить
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension

Tips & Tricks / Советы, рекомендации и фишки при работе с Jupyter Notebook

todo

Подборка видео по Jupyter

Как использовать Jupyter (ipython-notebook) на 100%

Jupyter Notebook Tutorial (Eng)

  • 00:00 Introduction
  • 01:35 Jupyter notebook example
  • 04:11 Installing Python and Jupyter notebooks
  • 09:23 Launching Jupyter notebooks
  • 11:08 Basic notebook functionality
  • 20:58 The kernel, and variables
  • 28:38 Other notebook functionality
  • 34:45 The menu
  • 35:52 Jupyter notebook keyboard shortcuts
  • 36:57 Load and display data using pandas
  • 40:33 Using terminal commands inside a Jupyter notebook
  • 42:30 Jupyter notebook magic commands
  • 45:07 Other features outside of the notebooks
  • 46:41 Shutting down Jupyter notebooks
  • 48:02 Jupyter notebook extensions and other libraries
  • 52:47 Conclusion, and thank you

Jupyterlab — STOP Using Jupyter Notebook! Here’s the Better Tool

I have some code in a .ipynb file and got it to the point where I don’t really need the «interactive» feature of IPython Notebook. I would like to just run it straight from a Mac Terminal Command Line.

Basically, if this were just a .py file, I believe I could just do python filename.py from the command line. Is there something similar for a .ipynb file?

Borealis's user avatar

Borealis

7,83117 gold badges63 silver badges111 bronze badges

asked Feb 22, 2016 at 3:35

Vincent's user avatar

2

nbconvert allows you to run notebooks with the --execute flag:

jupyter nbconvert --execute <notebook>

If you want to run a notebook and produce a new notebook, you can add --to notebook:

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

Or if you want to replace the existing notebook with the new output:

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

Since that’s a really long command, you can use an alias:

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

answered Feb 23, 2016 at 8:50

minrk's user avatar

minrkminrk

37k9 gold badges92 silver badges88 bronze badges

5

From the command line you can convert a notebook to python with this command:

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

You may have to install the python mistune package:

sudo pip install -U mistune

evandrix's user avatar

evandrix

5,9864 gold badges27 silver badges37 bronze badges

answered Feb 22, 2016 at 3:48

ditkin's user avatar

ditkinditkin

6,6461 gold badge34 silver badges37 bronze badges

4

In your Terminal run ipython:

ipython

then locate your script and put there:

%run your_script.ipynb

answered Nov 8, 2019 at 21:39

Martin Ptacek's user avatar

4

You can export all your code from .ipynb and save it as a .py script. Then you can run the script in your terminal.

code export sample

Hope it helps.

answered Feb 22, 2016 at 3:43

Eric's user avatar

EricEric

2,55720 silver badges24 bronze badges

1

Using ipython:

ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb

Normally, I would prefer this option as it is really self-describing. If you prefer to use less characters, use:

ipython -c "%run <notebook>.ipynb"

which is basically what Keto already suggested (unfortunately a little bit hidden) as a comment.

answered Mar 9, 2021 at 9:54

Murmel's user avatar

MurmelMurmel

5,18244 silver badges52 bronze badges

2

In my case, the command that best suited me was:

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

Why? This command does not create extra files (just like a .py file) and the output of the cells is overwritten everytime the notebook is executed.

If you run:

jupyter nbconvert --help

—clear-output
Clear output of current file and save in place, overwriting the existing notebook.

answered Oct 18, 2019 at 0:12

alejandro's user avatar

alejandroalejandro

7147 silver badges9 bronze badges

For new version instead of:

ipython nbconvert --to python <YourNotebook>.ipynb

You can use jupyter instend of ipython:

jupyter nbconvert --to python <YourNotebook>.ipynb

answered Apr 5, 2018 at 6:19

Vijay Panchal's user avatar

1

Update with quoted comment by author for better visibility:

Author’s note «This project started before Jupyter’s execute API, which is now the recommended way to run notebooks from the command-line. Consider runipy deprecated and unmaintained.» – Sebastian Palma

Install runipy library that allows running your code on terminal

pip install runipy

After just compiler your code:

runipy <YourNotebookName>.ipynb

You can try cronjob as well. All information is here

Oliver Bestwalter's user avatar

answered Feb 10, 2018 at 12:05

Axis's user avatar

AxisAxis

2,0392 gold badges20 silver badges39 bronze badges

1

I had the same problem and I found papermill. The advantages against the others solutions is that you can see the results while the notebook is running. I find this feature interesting when the notebook takes very long. It is very easy to use:

pip install papermill
papermill notebook.ipynb output.ipynb

It has also, other handy options as saving the output file to Amazon S3, Google Cloud, etc. See the page for more information.

answered Jul 16, 2020 at 11:30

pglez82's user avatar

pglez82pglez82

4594 silver badges11 bronze badges

1

You can also use the boar package to run your notebook within a python code.

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

If you update your notebook, you won’t have to convert it again to a python file.


More information at:

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

answered May 24, 2020 at 15:39

Alex's user avatar

AlexAlex

15010 bronze badges

There is now a jupyter run subcommand that will execute a notebook.

jupyter run notebook.ipynb

More on this command can be found in the Jupyter documentation.

answered Dec 22, 2022 at 18:35

Geoffrey Hing's user avatar

Geoffrey HingGeoffrey Hing

1,5352 gold badges15 silver badges22 bronze badges

From the terminal run

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

The default timeout is 30 seconds. -1 removes the restriction.

If you wish to save the output notebook to a new notebook you can use the flag --output my_new_nb.ipynb

answered Jul 7, 2020 at 6:28

Mohammad S's user avatar

Mohammad SMohammad S

611 silver badge3 bronze badges

You can also use jupytext https://jupytext.readthedocs.io/en/latest/index.html.

This allows you to pair your notebook. So for each ipynb file you have a .py file as well with some comments. The .py file can be executed as usual.
You can enjoy benefits of two worlds with the cost of one extra file though.

Oh, and by the way if you are using version control you can only commit .py files with a nice diff instead of the ugly .ipynb diffs.

(The syntax in the .py files is similar to Databricks notebooks iy you are familiar with them…)

answered Apr 19, 2022 at 7:14

Ken Jiiii's user avatar

Ken JiiiiKen Jiiii

3117 silver badges19 bronze badges

In a batch file paste the below. Use ipython to run .ipynb files.

@echo on
call "C:ProgramDataAnaconda3Scriptsactivate.bat"
ipython "pathtest.ipynb"
pause

answered Sep 24, 2022 at 8:34

pRo's user avatar

I’ve made some research on this topic and wrote an article on 4 ways to run Jupyter Notebook in command line below is summary of my findings.

1. Use nbconvert

The nbconvert package is already installed in Jupyter Notebook. It can be used to execute notebook. Additionally it has many features:

  • can export notebook to PDF or HTML,
  • can hide code in output notebook,
  • can execute notebook even with errors in cells.

Example notebook execution:

jupyter nbconvert --execute --to notebook --allow-errors your-notebook.ipynb 

The above command will output your-notebook.nbconvert.ipynb file and will execute all cells even with errors.

2. Use papermill

The papermill allows you to parametrize notebook. You can define variables as parameters (with cell tags).

Example command:

papermill -p name Piotrek your-notebook.ipynb output-notebook.ipynb

Example notebook with injected parameters:
notebook with injected parameters by papermill

3. Manually download notebook as .py script

There is an option to manually download notebook as .py script:

download notebook as Python script

After download you can add execution rights to the file and run it as a command line script.

4. Use jupytext

The jupytext package allows you to synchronize .ipynb file with .py file. You don’t need to manually convert notebook to script.

answered Oct 26, 2022 at 15:25

pplonski's user avatar

pplonskipplonski

4,5181 gold badge29 silver badges29 bronze badges

I have some code in a .ipynb file and got it to the point where I don’t really need the «interactive» feature of IPython Notebook. I would like to just run it straight from a Mac Terminal Command Line.

Basically, if this were just a .py file, I believe I could just do python filename.py from the command line. Is there something similar for a .ipynb file?

Borealis's user avatar

Borealis

7,83117 gold badges63 silver badges111 bronze badges

asked Feb 22, 2016 at 3:35

Vincent's user avatar

2

nbconvert allows you to run notebooks with the --execute flag:

jupyter nbconvert --execute <notebook>

If you want to run a notebook and produce a new notebook, you can add --to notebook:

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

Or if you want to replace the existing notebook with the new output:

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

Since that’s a really long command, you can use an alias:

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

answered Feb 23, 2016 at 8:50

minrk's user avatar

minrkminrk

37k9 gold badges92 silver badges88 bronze badges

5

From the command line you can convert a notebook to python with this command:

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

You may have to install the python mistune package:

sudo pip install -U mistune

evandrix's user avatar

evandrix

5,9864 gold badges27 silver badges37 bronze badges

answered Feb 22, 2016 at 3:48

ditkin's user avatar

ditkinditkin

6,6461 gold badge34 silver badges37 bronze badges

4

In your Terminal run ipython:

ipython

then locate your script and put there:

%run your_script.ipynb

answered Nov 8, 2019 at 21:39

Martin Ptacek's user avatar

4

You can export all your code from .ipynb and save it as a .py script. Then you can run the script in your terminal.

code export sample

Hope it helps.

answered Feb 22, 2016 at 3:43

Eric's user avatar

EricEric

2,55720 silver badges24 bronze badges

1

Using ipython:

ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb

Normally, I would prefer this option as it is really self-describing. If you prefer to use less characters, use:

ipython -c "%run <notebook>.ipynb"

which is basically what Keto already suggested (unfortunately a little bit hidden) as a comment.

answered Mar 9, 2021 at 9:54

Murmel's user avatar

MurmelMurmel

5,18244 silver badges52 bronze badges

2

In my case, the command that best suited me was:

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

Why? This command does not create extra files (just like a .py file) and the output of the cells is overwritten everytime the notebook is executed.

If you run:

jupyter nbconvert --help

—clear-output
Clear output of current file and save in place, overwriting the existing notebook.

answered Oct 18, 2019 at 0:12

alejandro's user avatar

alejandroalejandro

7147 silver badges9 bronze badges

For new version instead of:

ipython nbconvert --to python <YourNotebook>.ipynb

You can use jupyter instend of ipython:

jupyter nbconvert --to python <YourNotebook>.ipynb

answered Apr 5, 2018 at 6:19

Vijay Panchal's user avatar

1

Update with quoted comment by author for better visibility:

Author’s note «This project started before Jupyter’s execute API, which is now the recommended way to run notebooks from the command-line. Consider runipy deprecated and unmaintained.» – Sebastian Palma

Install runipy library that allows running your code on terminal

pip install runipy

After just compiler your code:

runipy <YourNotebookName>.ipynb

You can try cronjob as well. All information is here

Oliver Bestwalter's user avatar

answered Feb 10, 2018 at 12:05

Axis's user avatar

AxisAxis

2,0392 gold badges20 silver badges39 bronze badges

1

I had the same problem and I found papermill. The advantages against the others solutions is that you can see the results while the notebook is running. I find this feature interesting when the notebook takes very long. It is very easy to use:

pip install papermill
papermill notebook.ipynb output.ipynb

It has also, other handy options as saving the output file to Amazon S3, Google Cloud, etc. See the page for more information.

answered Jul 16, 2020 at 11:30

pglez82's user avatar

pglez82pglez82

4594 silver badges11 bronze badges

1

You can also use the boar package to run your notebook within a python code.

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

If you update your notebook, you won’t have to convert it again to a python file.


More information at:

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

answered May 24, 2020 at 15:39

Alex's user avatar

AlexAlex

15010 bronze badges

There is now a jupyter run subcommand that will execute a notebook.

jupyter run notebook.ipynb

More on this command can be found in the Jupyter documentation.

answered Dec 22, 2022 at 18:35

Geoffrey Hing's user avatar

Geoffrey HingGeoffrey Hing

1,5352 gold badges15 silver badges22 bronze badges

From the terminal run

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

The default timeout is 30 seconds. -1 removes the restriction.

If you wish to save the output notebook to a new notebook you can use the flag --output my_new_nb.ipynb

answered Jul 7, 2020 at 6:28

Mohammad S's user avatar

Mohammad SMohammad S

611 silver badge3 bronze badges

You can also use jupytext https://jupytext.readthedocs.io/en/latest/index.html.

This allows you to pair your notebook. So for each ipynb file you have a .py file as well with some comments. The .py file can be executed as usual.
You can enjoy benefits of two worlds with the cost of one extra file though.

Oh, and by the way if you are using version control you can only commit .py files with a nice diff instead of the ugly .ipynb diffs.

(The syntax in the .py files is similar to Databricks notebooks iy you are familiar with them…)

answered Apr 19, 2022 at 7:14

Ken Jiiii's user avatar

Ken JiiiiKen Jiiii

3117 silver badges19 bronze badges

In a batch file paste the below. Use ipython to run .ipynb files.

@echo on
call "C:ProgramDataAnaconda3Scriptsactivate.bat"
ipython "pathtest.ipynb"
pause

answered Sep 24, 2022 at 8:34

pRo's user avatar

I’ve made some research on this topic and wrote an article on 4 ways to run Jupyter Notebook in command line below is summary of my findings.

1. Use nbconvert

The nbconvert package is already installed in Jupyter Notebook. It can be used to execute notebook. Additionally it has many features:

  • can export notebook to PDF or HTML,
  • can hide code in output notebook,
  • can execute notebook even with errors in cells.

Example notebook execution:

jupyter nbconvert --execute --to notebook --allow-errors your-notebook.ipynb 

The above command will output your-notebook.nbconvert.ipynb file and will execute all cells even with errors.

2. Use papermill

The papermill allows you to parametrize notebook. You can define variables as parameters (with cell tags).

Example command:

papermill -p name Piotrek your-notebook.ipynb output-notebook.ipynb

Example notebook with injected parameters:
notebook with injected parameters by papermill

3. Manually download notebook as .py script

There is an option to manually download notebook as .py script:

download notebook as Python script

After download you can add execution rights to the file and run it as a command line script.

4. Use jupytext

The jupytext package allows you to synchronize .ipynb file with .py file. You don’t need to manually convert notebook to script.

answered Oct 26, 2022 at 15:25

pplonski's user avatar

pplonskipplonski

4,5181 gold badge29 silver badges29 bronze badges

In the %run magic documentation you can find:

-i run the file in IPython’s namespace instead of an empty one. This is useful if you are experimenting with code written in a text editor which depends on variables defined interactively.

Therefore, supplying -i does the trick:

%run -i 'script.py'

The «correct» way to do it

Maybe the command above is just what you need, but with all the attention this question gets, I decided to add a few more cents to it for those who don’t know how a more pythonic way would look like.
The solution above is a little hacky, and makes the code in the other file confusing (Where does this x variable come from? and what is the f function?).

I’d like to show you how to do it without actually having to execute the other file over and over again.
Just turn it into a module with its own functions and classes and then import it from your Jupyter notebook or console. This also has the advantage of making it easily reusable and jupyters contextassistant can help you with autocompletion or show you the docstring if you wrote one.
If you’re constantly editing the other file, then autoreload comes to your help.

Your example would look like this:
script.py

import matplotlib.pyplot as plt

def myplot(f, x):
    """
    :param f: function to plot
    :type f: callable
    :param x: values for x
    :type x: list or ndarray

    Plots the function f(x).
    """
    # yes, you can pass functions around as if
    # they were ordinary variables (they are)
    plt.plot(x, f(x))
    plt.xlabel("Eje $x$",fontsize=16)
    plt.ylabel("$f(x)$",fontsize=16)
    plt.title("Funcion $f(x)$")

Jupyter console

In [1]: import numpy as np

In [2]: %load_ext autoreload

In [3]: %autoreload 1

In [4]: %aimport script

In [5]: def f(x):
      :     return np.exp(-x ** 2)
      :
      :

In [6]: x = np.linspace(-1, 3, 100)

In [7]: script.myplot(f, x)

In [8]: ?script.myplot
Signature: script.myplot(f, x)
Docstring:
:param f: function to plot
:type f: callable
:param x: x values
:type x: list or ndarray
File:      [...]script.py
Type:      function

Понравилась статья? Поделить с друзьями:
  • Как запустить iperf3 на windows 10
  • Как запустить iperf на windows 10
  • Как запустить ipconfig в windows 10
  • Как запустить internet explorer в windows 11 вместо edge
  • Как запустить internet explorer x32 в windows 10