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 и создайте папку для наших примеров, для этого нажмите на New в правой части экрана и выберите в выпадающем списке Folder.
По умолчанию папке присваивается имя “Untitled folder”, переименуем ее в “notebooks”: поставьте галочку напротив имени папки и нажмите на кнопку “Rename”.
Зайдите в эту папку и создайте в ней ноутбук, воспользовавшись той же кнопкой New, только на этот раз нужно выбрать “Python [Root]”.
В результате будет создан ноутбук.
.
Код на языке Python или текст в нотации Markdown нужно вводить в ячейки:
Если это код Python, то на панели инструментов нужно выставить свойство “Code”.
Если это Markdown текст – выставить “Markdown”.
Для начал решим простую арифметическую задачу: выставите свойство “Code”, введите в ячейке “2 + 3” без кавычек и нажмите Ctrl+Enter или Shift+Enter, в первом случае введенный вами код будет выполнен интерпретатором Python, во втором – будет выполнен код и создана новая ячейка, которая расположится уровнем ниже так, как показано на рисунке.
Если у вас получилось это сделать, выполните еще несколько примеров.
У каждого ноутбука есть имя, оно отображается в верхней части экрана. Для изменения имени нажмите на его текущее имя и введите новое.
Из элементов интерфейса можно выделить, панель меню:
панель инструментов:
и рабочее поле с ячейками:
Ноутбук может находиться в одном из двух режимов – это режим правки (Edit mode) и командный режим (Command mode). Текущий режим отображается на панели меню в правой части, в режиме правки появляется изображение карандаша, отсутствие этой иконки значит, что ноутбук находится в командном режиме.
Для открытия справки по сочетаниям клавиш нажмите “Help->Keyboard Shortcuts”
В самой правой части панели меню находится индикатор загруженности ядра Python. Если ядро находится в режиме ожидания, то индикатор представляет собой окружность.
Если оно выполняет какую-то задачу, то изображение измениться на закрашенный круг.
Запуск и прерывание выполнения кода
Если ваша программа зависла, то можно прервать ее выполнение выбрав на панели меню пункт 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
Для работы с переменными окружения используется команда %env.
Запуск Python кода из “.py” файлов, а также из других ноутбуков – файлов с расширением “.ipynb”, осуществляется с помощью команды %run.
Для измерения времени работы кода используйте %%time и %timeit.
%%time позволяет получить информацию о времени работы кода в рамках одной ячейки.
%timeit запускает переданный ей код 100000 раз (по умолчанию) и выводит информацию среднем значении трех наиболее быстрых прогонах.
Информацию по остальным магическим командам можете найти здесь:
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. Работа с данными”.
<<< 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.
- 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. )
- Click file InvokePythonScript.ipynb to edit it.
- 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)
- 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 ).
- Now you can find the list_file.py has been created or overwrote in your jupyter notebook webserver started folder.
- 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
- 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))
- 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.
- Click the green triangle button of the python virtual environment in the Anaconda environments list, then click the Open Terminal menu item.
- 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 это будет двухэтапный процесс:
- установить и
- включить
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
7,83117 gold badges63 silver badges111 bronze badges
asked Feb 22, 2016 at 3:35
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
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
5,9864 gold badges27 silver badges37 bronze badges
answered Feb 22, 2016 at 3:48
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
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.
Hope it helps.
answered Feb 22, 2016 at 3:43
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
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
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
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
answered Feb 10, 2018 at 12:05
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
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
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 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 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 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
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:
3. Manually download notebook as .py
script
There is an option to manually download notebook as .py
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
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
7,83117 gold badges63 silver badges111 bronze badges
asked Feb 22, 2016 at 3:35
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
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
5,9864 gold badges27 silver badges37 bronze badges
answered Feb 22, 2016 at 3:48
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
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.
Hope it helps.
answered Feb 22, 2016 at 3:43
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
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
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
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
answered Feb 10, 2018 at 12:05
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
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
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 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 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 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
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:
3. Manually download notebook as .py
script
There is an option to manually download notebook as .py
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
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