Настройте свой jupyter notebook правильно

4: Работа с Jupyter Notebook

При доступе через веб-браузер Jupyter Notebook предоставляет панель инструментов Notebook Dashboard, которая действует как файловый браузер и предоставляет вам интерфейс для создания, редактирования и изучения документов. Это документы с расширением .ipynb, которые заполняются любым количеством отдельных ячеек. Каждая ячейка содержит интерактивный текстовый редактор, который можно использовать для запуска кода или написания текста. Кроме того, документы позволяют писать и выполнять уравнения, а также включают в себя другие мультимедиа, такие как изображения или интерактивные графики. Их можно экспортировать и совместно использовать в различных форматах (.ipyb, .pdf, .py). Чтобы проиллюстрировать некоторые из этих функций, мы создадим файл документа с помощью панели инструментов Notebook Dashboard, запишем простой текст с уравнением и запустим базовый код Python 3.

К этому моменту вы должны были подключиться к серверу через туннель SSH и запустить приложение Jupyter Notebook с вашего сервера. После перехода по адресу http://localhost:8000 вы увидите страницу входа.

В верхнем поле Password or token введите токен, который был показан в выводе после запуска на сервере команды jupyter notebook:

Кроме того, вы можете скопировать этот URL из вывода вашего терминала и вставить его в адресную строку браузера.

В документе Jupyter автоматически отобразятся все файлы и папки, хранящиеся в каталоге, из которого он запущен. Создайте новый файл документа, нажав New, а затем «Python 3» в правом верхнем углу панели инструментов Notebook Dashboard.

Это откроет новый документ. Например, чтобы первая ячейка принимала Markdown, кликните Cell > Cell Type > Markdown в верхней панели навигации. Теперь можно делать записи, используя Markdown, и даже включать уравнения, написанные в LaTeX, помещая их между символами $$. Например, в ячейку с поддержкой Markdown введите следующее:

Чтобы превратить Markdown в форматированный текст, нажмите сочетание клавиш Ctrl + Enter.

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

Давайте выполним это простое уравнение и выведем результат на экран. Нажмите Insert > Insert Cell Below, чтобы добавить новую ячейку. Введите следующий код в новой ячейке.

Чтобы запустить код, нажмите Ctrl + Enter. На экране появится результат.

Вот несколько сравнительно простых примеров того, что вы можете сделать с помощью Jupyter Notebook. Но помните – это приложение очень мощное, оно имеет много других, более сложных вариантов использования. Теперь вы можете добавить библиотеки Python, импортировать модули и использовать документы, как и в любой другой среде разработки Python!

Embedding the notebook in another website¶

Sometimes you may want to embed the notebook somewhere on your website,
e.g. in an IFrame. To do this, you may need to override the
Content-Security-Policy to allow embedding. Assuming your website is at
https://mywebsite.example.com, you can embed the notebook on your website
with the following configuration setting in
:

c.NotebookApp.tornado_settings = {
    'headers' {
        'Content-Security-Policy' "frame-ancestors https://mywebsite.example.com 'self' "
    }
}

When embedding the notebook in a website using an iframe,
consider putting the notebook in single-tab mode.
Since the notebook opens some links in new tabs by default,
single-tab mode keeps the notebook from opening additional tabs.
Adding the following to will enable
single-tab mode:

Structure of a notebook document¶

The notebook consists of a sequence of cells. A cell is a multiline text input
field, and its contents can be executed by using Shift-Enter, or by
clicking either the “Play” button the toolbar, or Cell, Run in the menu bar.
The execution behavior of a cell is determined by the cell’s type. There are three
types of cells: code cells, markdown cells, and raw cells. Every
cell starts off being a code cell, but its type can be changed by using a
drop-down on the toolbar (which will be “Code”, initially), or via
.

For more information on the different things you can do in a notebook,
see the collection of examples.

Code cells

A code cell allows you to edit and write new code, with full syntax
highlighting and tab completion. The programming language you use depends
on the kernel, and the default kernel (IPython) runs Python code.

When a code cell is executed, code that it contains is sent to the kernel
associated with the notebook. The results that are returned from this
computation are then displayed in the notebook as the cell’s output. The
output is not limited to text, with many other possible forms of output are
also possible, including figures and HTML tables (as used, for
example, in the data analysis package). This is known as IPython’s
rich display capability.

See also

Rich Output example notebook

Markdown cells

You can document the computational process in a literate way, alternating
descriptive text with code, using rich text. In IPython this is accomplished
by marking up text with the Markdown language. The corresponding cells are
called Markdown cells. The Markdown language provides a simple way to
perform this text markup, that is, to specify which parts of the text should
be emphasized (italics), bold, form lists, etc.

If you want to provide structure for your document, you can use markdown
headings. Markdown headings consist of 1 to 6 hash # signs followed by a
space and the title of your section. The markdown heading will be converted
to a clickable link for a section of the notebook. It is also used as a hint
when exporting to other document formats, like PDF.

When a Markdown cell is executed, the Markdown code is converted into
the corresponding formatted rich text. Markdown allows arbitrary HTML code for
formatting.

Within Markdown cells, you can also include mathematics in a straightforward
way, using standard LaTeX notation: for inline mathematics and
for displayed mathematics. When the Markdown cell is executed,
the LaTeX portions are automatically rendered in the HTML output as equations
with high quality typography. This is made possible by MathJax, which
supports a large subset of LaTeX functionality

Standard mathematics environments defined by LaTeX and AMS-LaTeX (the
package) also work, such as
, and .
New LaTeX macros may be defined using standard methods,
such as , by placing them anywhere between math delimiters in
a Markdown cell. These definitions are then available throughout the rest of
the IPython session.

See also

Working with Markdown Cells example notebook

Интерактивные среды программирования

Ещё одно направление развития систем программирования — интерактивные среды разработки. Они появились несколько десятилетий назад вместе с LISP и REPL, которые позволили разработчикам интерактивно редактировать код в работающем приложении. Smalltalk пошёл ещё дальше, создав интерактивное визуальное рабочее пространство. Во всех этих случаях языки программирования подходили для интерактивной работы. Например, LISP с его макросистемой и кодом как данными вписался в эту модель.

Интерактивное программирование в Smalltalk

Хотя этот подход нельзя назвать общепринятым, он стал популярным в научной сфере, статистике и других областях Data Driven Development ( программирования, управляемого данными). Фронтенд-программирование на JavaScript тоже позаимствовало важные концепции из этого подхода, например, горячую перезагрузку или интерактивное редактирование кода в браузере.

MATLAB тоже создавался как полностью интерактивный инструмент в 70-е годы. Он и сейчас используется в инженерии, биологии и других отраслях. Похожие принципы используются в SPLUS и R, которые широко используются в области статистики и визуализации данных.

Я был приятно удивлён, когда впервые использовал систему Mathematica около 25 лет назад. Эта система показалась мне наиболее приближенной к грамотному программированию. Её применение не влияло на продуктивность. В Mathematica используется интерфейс ноутбуков, который ведёт себя практически как REPL. Также система позволяет использовать графики, изображения, форматированный текст и так далее. Эта система позволила мне делать то, что раньше было недоступным. Например, она позволяет тестировать алгоритмы и получать визуальную обратную связь.

Но Mathematica не позволила мне сделать что-то полезное, так как с её помощью невозможно поделиться кодом или приложениями с коллегами, пока вы не оплатите дорогую лицензию. Также Mathematica не позволяет делать приложения, которые можно использовать в браузере. Кроме того, мне показалось, что код Mathematica более медленный и требовательный к памяти, чем код, написанный на других языках.

Можете представить мою радость, когда я узнал о выходе Jupyter Notebook. В нём используется такой же простой интерфейс ноутбуков, как в Mathematica. Но это продукт с открытым исходным кодом, что позволило мне писать на доступных языках с широкой поддержкой. Я использовал Jupyter Notebook не только для изучения алгоритмов, API и проверки новых идей. Этот инструмент стал средством обучения в fast.ai. Многие студенты убедились, что возможность экспериментировать с входящими данными и сразу же видеть результат позволяет лучше усваивать учебный материал.

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

Одним словом, нам и нашим студентам понравился Jupyter Notebook. Оставалось использовать его для разработки нашего программного обеспечения.

Basic workflow¶

The normal workflow in a notebook is, then, quite similar to a standard
IPython session, with the difference that you can edit cells in-place multiple
times until you obtain the desired results, rather than having to
rerun separate scripts with the magic command.

Typically, you will work on a computational problem in pieces, organizing
related ideas into cells and moving forward once previous parts work
correctly. This is much more convenient for interactive exploration than
breaking up a computation into scripts that must be executed together, as was
previously necessary, especially if parts of them take a long time to run.

To interrupt a calculation which is taking too long, use the Kernel,
Interrupt menu option, or the i,i keyboard shortcut.
Similarly, to restart the whole computational process,
use the Kernel, Restart menu option or 0,0
shortcut.

A notebook may be downloaded as a file or converted to a number of
other formats using the menu option File, Download as.

See also

Running Code in the Jupyter Notebook example notebook

Notebook Basics example notebook

What is JupyterHub?

JupyterHub brings the power of notebooks to groups of users. It gives
users access to computational environments and resources without burdening
the users with installation and maintenance tasks. Users — including students,
researchers, and data scientists — can get their work done in their own
workspaces on shared resources which can be managed efficiently by system administrators.

JupyterHub runs in the cloud or on your own hardware, and makes it possible
to serve a pre-configured data science environment to any user in the world.
It is customizable and scalable, and is suitable for small and large teams,
academic courses, and large-scale infrastructure.

Основные команды

Быстро получить доступ к сочетаниям клавиш можно с помощью комбинаций или , тогда откроется диалоговое окно, похожее на Spotlight Search на Mac. Это поможет вам запустить любую команду по имени, что очень удобно, когда ещё не знаешь нужного сочетания клавиш.

позволяет запустить текущую ячейку.

переводит в командный режим. Он позволяет перемещаться по документу с помощью клавиш-стрелок.

Митап «Growth Hacking и команды роста»

18 марта в 18:30, Москва, беcплатно

tproger.ru

События и курсы на tproger.ru

В командном режиме можно использовать:

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

— покажет документацию для объекта, который вы только что ввели в ячейку кода. Для переключения между несколькими режимами продолжайте нажимать это сочетание клавиш. — поможет найти и заменить информацию в коде (кроме выходных данных). — переключает вывод ячейки. (или ) — выделяет ячейки ниже текущей. (или ) выделяет ячейки выше текущей. Как только ячейки выбраны, их можно удалить/скопировать/вырезать/вставить/запустить как пакет. Это удобно, когда нужно переместить только часть документа. — позволяет объединить несколько ячеек.

Кроме того, в документе можно запускать bash-команды, если в начале поставить восклицательный знак:

Чтобы отключить отображение результата выражения в последней строчке ячейки, добавьте в конце последней строчки точку с запятой ().

Комментирование/раскомментирование блока кода

Добавить новые строки кода и закомментировать старые можно сочетанием клавиш. Выделите все нужные строки и нажмите , это закомментирует выделенный код.

LaTex

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

Данная строка будет преобразована в следующую формулу:

Отображение данных из всех ячеек

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

Отображение по умолчанию:

Отображение всех ячеек:

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

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

3: Подключение к серверу по SSH-туннелю

Туннелирование SSH – это простой и быстрый способ подключения к приложению Jupyter Notebook на удаленном сервере. Оболочка Secure shell (более известная как SSH) – это сетевой протокол, который позволяет безопасно подключаться к удаленному серверу по незащищенной сети.

Протокол SSH включает механизм переадресации портов, который позволяет создавать туннели между конкретными портами на сервере и на вашем локальном компьютере. В этом разделе вы узнаете, как туннелировать приложение Jupyter Notebook, работающее на вашем сервере (по умолчанию это порт 8888), на локальную машину.

Метод установки туннеля SSH будет зависеть от операционной системы вашего локального компьютера. Выберите соответствующий подраздел и выполните его.

SSH-туннелирование на Mac или Linux

Если вы используете Mac или Linux, вы можете создать туннель с помощью одной команды.

ssh — это стандартная команда для открытия соединения SSH, но флаг -L в ней позволяет указать, что данный порт на локальном хосте (то есть на вашем локальном компьютере) будет перенаправляться на данный хост и порт на удаленной стороне (в данном случае это ваш сервер). Это означает, что все, что работает по порту 8888 на сервере (в команде этот порт указывается после localhost), будет отображаться по порту 8888 на вашем локальном компьютере (этот порт идет перед localhost).

Чтобы установить SSH-туннель, выполните следующую команду. Вместо порта 8000 укажите любой другой порт (если, например, 8000 используется другим процессом). Рекомендуется использовать номера портов от 8000 и выше, так как эти порты вряд ли будут заняты другими процессами. Не забудьте указать IP-адрес вашего сервера и имя пользователя (не root):

Если после выполнения команды не появляется никаких ошибок, вы можете войти на удаленный сервер и активировать виртуальную среду:

В среде запустите Jupyter Notebook:

Чтобы подключиться к Jupyter Notebook, откройте в браузере на локальном компьютере веб-интерфейс Jupyter Notebook по URL-адресу, который начинается с http://localhost:8000.

SSH-туннелирование в Windows через Putty

В системе Windows SSH-туннель можно создать с помощью Putty.

PuTTY – это открытый SSH-клиент для Windows, который можно использовать для подключения к вашему серверу. После загрузки и установки PuTTY на вашем компьютере Windows откройте программу и введите URL или IP-адрес вашего сервера в поле Host Name (or IP address).

Затем нажмите кнопку SSH в нижней части левой панели, чтобы развернуть меню, и нажмите Tunnels. Введите номер локального порта, который будет использоваться для доступа к Jupyter на локальном компьютере. Рекомендуется использовать номера портов от 8000 и выше, так как эти порты вряд ли будут заняты другими процессами. Установите назначение localhost:8888 (где 8888 – это номер порта, на котором работает Jupyter Notebook).

Теперь нажмите кнопку Add, после чего порты должны появиться в списке Forwarded ports.

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

И запустите Jupyter Notebook:

В браузере перейдите по адресу http://localhost:8000  (или укажите порт, который вы выбрали), чтобы подключиться к экземпляру Jupyter Notebook на сервере.

2: Создание виртуальной среды для Jupyter

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

Установив зависимости, можно создать такую среду.

Для начала нужно получить команду virtualenv. Это можно сделать с помощью pip. Обновите pip и установите нужный пакет:

Флаг -H устанавливает в переменной среды home домашний каталог целевого пользователя.

После установки virtualenv можно начать работу над средой. Создайте отдельный каталог для файлов проекта и перейдите в него. Здесь мы назовем его условно my_project_dir, а вам лучше выбрать какое-то описательное название.

В этом каталоге создайте виртуальную среду Python. Для примера она называется здесь my_project_env.

Эта команда создаст каталог my_project_env в вашем каталоге my_project_dir. Внутри будет установлена локальная версия Python и pip. Их можно использовать для установки и настройки изолированной среды Python для Jupyter.

Перед установкой Jupyter нужно активировать виртуальную среду. Вы можете сделать это, набрав:

Ваша командная строка должна измениться – она отразит, что вы сейчас работаете в виртуальной среде Python. Она будет выглядеть примерно так:

Теперь вы готовы установить Jupyter в эту виртуальную среду.

Introduction¶

The notebook extends the console-based approach to interactive computing in
a qualitatively new direction, providing a web-based application suitable for
capturing the whole computation process: developing, documenting, and
executing code, as well as communicating the results. The Jupyter notebook
combines two components:

A web application: a browser-based tool for interactive authoring of
documents which combine explanatory text, mathematics, computations and their
rich media output.

Notebook documents: a representation of all content visible in the web
application, including inputs and outputs of the computations, explanatory
text, mathematics, images, and rich media representations of objects.

See also

See the on how to install the
notebook and its dependencies.

Main features of the web application

  • In-browser editing for code, with automatic syntax highlighting,
    indentation, and tab completion/introspection.

  • The ability to execute code from the browser, with the results of
    computations attached to the code which generated them.

  • Displaying the result of computation using rich media representations, such
    as HTML, LaTeX, PNG, SVG, etc. For example, publication-quality figures
    rendered by the matplotlib library, can be included inline.

  • In-browser editing for rich text using the Markdown markup language, which
    can provide commentary for the code, is not limited to plain text.

  • The ability to easily include mathematical notation within markdown cells
    using LaTeX, and rendered natively by MathJax.

Notebook documents

Notebook documents contains the inputs and outputs of a interactive session as
well as additional text that accompanies the code but is not meant for
execution. In this way, notebook files can serve as a complete computational
record of a session, interleaving executable code with explanatory text,
mathematics, and rich representations of resulting objects. These documents
are internally JSON files and are saved with the extension. Since
JSON is a plain text format, they can be version-controlled and shared with
colleagues.

Notebooks may be exported to a range of static formats, including HTML (for
example, for blog posts), reStructuredText, LaTeX, PDF, and slide shows, via
the nbconvert command.

Furthermore, any notebook document available from a public
URL can be shared via the Jupyter Notebook Viewer (nbviewer).
This service loads the notebook document from the URL and renders it as a
static web page. The results may thus be shared with a colleague, or as a
public blog post, without other users needing to install the Jupyter notebook
themselves. In effect, nbviewer is simply nbconvert as
a web service, so you can do your own static conversions with nbconvert,
without relying on nbviewer.

See also

Шаг 5 — Подключение к серверу с помощью туннеля SSH

В этом разделе мы узнаем, как подключиться к веб-интерфейсу Jupyter Notebook с помощью туннеля SSH. Поскольку Jupyter Notebook будет работать на конкретном порту на сервере (например, , и т. д.), туннель SSH позволяет безопасно подключаться к порту сервера.

В следующих двух подразделах описано, как создать туннель SSH в (1) Mac или Linux и в (2) Windows. См. подраздел для вашего локального компьютера.

Туннель SSH в Mac или Linux

Если вы используете Mac или Linux, шаги, которые необходимо выполнить для создания туннеля SSH, аналогичны шагам, которые выполняются при входе на удаленный сервер с помощью SSH, за исключением дополнительных параметров в команде . В этом подразделе будут показаны дополнительные параметры, необходимые команде для успешного создания туннеля.

Создание туннелей SSH может быть осуществлено с помощью следующей команды SSH, которую необходимо ввести в новом окне локальной командной строки:

Команда открывает соединение SSH, но указывает, что данный порт на локальном хосте (клиент) будет отправляться на заданный хост и порт на удаленном конце (сервер). Это значит, что бы ни было запущено на втором порту (например, ) на сервере, оно появится на первом порту (например, ) на локальном компьютере.

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

— это ваше имя пользователя (например, sammy) на сервере, который вы создали, а — это IP-адрес вашего сервера.

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

Если после запуска команды не появится ошибок, вы можете перейти в среду программирования и запустить Jupyter Notebook:

Вы получите вывод с URL-адресом. В веб-браузере на локальном компьютере откройте веб-интерфейс Jupyter Notebook с URL-адресом, который начинается с . Убедитесь, что номер маркера включен, либо введите строку с номером маркера при запросе в .

Создание туннелей SSH с использованием Windows и PuTTY

Если вы используете Windows, вы можете создать туннель SSH с помощью Putty.

Введите URL-адрес сервера или IP-адрес в качестве имени хоста, как показано ниже:

Далее нажмите SSH в нижней части левой панели, чтобы расширить меню, а затем нажмите Tunnels (Туннели). Введите локальный номер порта, который вы хотите использовать для доступа к Jupyter на локальном компьютере. Выберите или выше, чтобы избежать использования портов, которые уже используются другими службами, и задайте назначение localhost: , где — номер порта, на котором запущен Jupyter Notebook.

Затем нажмите кнопку Add (Добавить), после чего порты должны появиться в списке Forwarded ports (Перенаправляемые порты):

После этого нажмите кнопку Open (Открыть) для подключения к серверу через SSH и туннель с нужными портами. Перейдите на (или любой порт на выбор) в веб-браузере для подключения к Jupyter Notebook, запущенному на сервере. Убедитесь, что номер маркера включен, либо введите строку с номером маркера при запросе в .

Где хранятся записные книжки?Where are the notebooks stored?

Если кластер HDInsight использует службу хранилища Azure в качестве учетной записи хранения по умолчанию, записные книжки Jupyter сохраняются в папке /HdiNotebooks в учетной записи хранения.If your cluster uses Azure Storage as the default storage account, Jupyter notebooks are saved to storage account under the /HdiNotebooks folder. Доступ к объектам Notebook, текстовым файлам и папкам, создаваемым в Jupyter, можно получить через учетную запись хранения.Notebooks, text files, and folders that you create from within Jupyter are accessible from the storage account. Например, если Jupyter используется для создания папки myfolder и объекта Notebook myfolder/mynotebook.ipynb, то доступ к этому объекту можно получить в расположении в учетной записи хранения.For example, if you use Jupyter to create a folder myfolder and a notebook myfolder/mynotebook.ipynb, you can access that notebook at within the storage account. Верно и обратное: если вы передаете объект Notebook непосредственно в свою учетную запись хранения в , то этот объект также отображается в Jupyter.The reverse is also true, that is, if you upload a notebook directly to your storage account at , the notebook is visible from Jupyter as well. Объекты Notebook хранятся в учетной записи хранения даже после удаления кластера.Notebooks remain in the storage account even after the cluster is deleted.

Примечание

Для кластеров HDInsight, использующих Azure Data Lake Storage в качестве хранилища по умолчанию, записные книжки не сохраняются в связанном хранилище.HDInsight clusters with Azure Data Lake Storage as the default storage do not store notebooks in associated storage.

Записные книжки сохраняются в учетной записи хранения, совместимой с Apache Hadoop HDFS.The way notebooks are saved to the storage account is compatible with Apache Hadoop HDFS. Таким образом, подключаясь к кластеру по протоколу SSH, вы можете использовать команды управления файлами, как показано в следующем фрагменте:So, if you SSH into the cluster you can use file management commands as shown in the following snippet:

Вне зависимости от того, использует кластер службу хранилища Azure или Azure Data Lake Storage в качестве учетной записи хранения по умолчанию, записные книжки также сохраняются на головном узле кластера в .Irrespective of whether the cluster uses Azure Storage or Azure Data Lake Storage as the default storage account, the notebooks are also saved on the cluster headnode at .

Nbdev: исследовательское программирование

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

Такой способ исследования просто организовать, когда вы работаете в REPL или в среде типа Jupyter Notebook. Но эти системы не так хороши для программирования. Поэтому специалисты чаще используют такие системы для ранних исследований, а потом переключаются на текстовый редактор или IDE

Они переключаются, чтобы получить дополнительные возможности, например, подсветку синтаксиса, интеграцию с юнит-тестами, и, самое важное, возможность создать итоговые файлы с исходным кодом, а не код в блокноте или REPL

Nbdev переносит ключевые преимущества IDE в систему ноутбуков. То есть вы можете работать в ноутбуке без ущерба для удобства и результата.

Чтобы достичь нужной интерактивности, nbdev использует Jupyter Notebook в качестве платформы. Это позволяет по максимуму раскрыть динамические свойства языка Python, но привносит и другие инструменты, жизненно необходимые разработчику ПО:

  • Автоматическое создание модулей Python, в которых учтены лучшие практики, например, автоматическое определение с экспортом функций, классов и переменных.
  • Навигация и редактирование кода в стандартном редакторе или IDE, и автоматический экспорт изменений в ноутбук.
  • Автоматическое создание индексируемой перелинкованной документации. Любое слово, обёрнутое в бэктики, автоматически линкуется с соответствующим разделом документации. В разделе документации создаётся сайдбар, в котором находятся ссылки на модули.
  • Установщики , загруженные в .
  • Тесты, объявленные прямо в блокноте и запускаемые в фоне.
  • Continuous integration (CI).
  • Разрешение конфликтов при версионировании кода.

Вот сниппет из нашего актуального исходного кода nbdev, который, конечно же, написан в nbdev.

Изучаем формат файлов в исходном коде nbdev

Как видно, когда вы пишете программы в таком ключе, каждый человек в команде получает пользу от вашей работы. Поскольку вы разрабатываете в ноутбуке, можно также добавлять графики, текст, ссылки, фото, видео и так далее. Этот контент автоматически попадает в документацию. Ячейки, в которых определён код, скрываются и заменяются стандартизированной документацией для вашей функции. В документации отображается имя, аргументы, строки документации, ссылка на исходный код на GitHub.

В документации nbdev вы найдёте больше информации о функциональности, установке и способах использования этого инструмента. Как вы помните, эта документация генерируется автоматически. Далее в этой статье я описываю историю и контекст «почему»: почему мы создали инструмент, и почему мы сделали его именно таким.

Related

  • Tutorial

    Автор выбрал фонд Open Internet/Free Speech для получения пожертвования в рамках программы Write for DOnations. В JavaScript разработчики часто тратят много времени на решение того, какую структуру данных…

  • Tutorial

    Веб-сервер Apache — популярный способ размещения сайтов в Интернете. Согласно оценкам, в 2019 году на базе этого веб-сервера работали 29% всех активных сайтов. Он обеспечивает разработчикам преимущества гибкости и надежности. Используя Apache, администратор может настроить один…

  • Tutorial

    В этом обучающем руководстве мы познакомимся с настройкой нескольких доменов и сайтов с помощью виртуальных хостов Apache на сервере Ubuntu 18.04. Во время этого процесса вы научитесь предоставлять разный контент разным посетителям в зависимости от того, какие домены они…

  • Tutorial
    Написание асинхронного кода в Node.js

    Автор выбрал фонд Open Internet/Free Speech для получения пожертвования в рамках программы Write for DOnations. Во многих программах JavaScript код выполняется так, как написал его…

Contributing

For a high-level view of the vision and next directions of the project, see the
JupyterHub community roadmap.

A note about platform support

JupyterHub is supported on Linux/Unix based systems.

JupyterHub officially does not support Windows. You may be able to use
JupyterHub on Windows if you use a Spawner and Authenticator that work on
Windows, but the JupyterHub defaults will not. Bugs reported on Windows will not
be accepted, and the test suite will not run on Windows. Small patches that fix
minor Windows compatibility issues (such as basic installation) may be accepted,
however. For Windows-based systems, we would recommend running JupyterHub in a
docker container or Linux VM.

Заключение

Часть 1 подошла к концу. Мы создали полностью портативную и переносимую сборку Jupyter и можем работать с файлами, которые лежат в нужной нам папке. Для этого создаём ярлыки на и , в свойствах ярлыков обязательно очищаем строку Рабочая папка», и всё готово к работе.

В части 2 будут рассмотрены различные вопросы кастомизации Jupyter Notebook, Jupyter Lab и Matplotlib. Научимся подключать расширения в Jupyter Notebook и Jupyter Lab, настраивать сочетания клавиш, размер шрифта и прочие настройки, напишем свои «магические команды».

Если у вас остались вопросы, но нет аккаунта на Хабре, вот мои контакты:

ВК: https://vk.me/sindzicat

Telegram: https://t.me/sindzicat

Вы можете помочь и перевести немного средств на развитие сайта

Ссылка на основную публикацию