Разное

Online ipython: CoCalc — Online Jupyter Notebooks

Содержание

Как открыть онлайн-ссылку с IPython?

Есть ли способ заставить IPython открыть браузер, указывающий на соответствующую онлайн-ссылку?

Особенно для numpy , scipy , matplotlib ?

Например, документ для numpy.linalg.cholesky довольно трудно прочитать в terminal.

numpy

ipython

Поделиться

Источник


Patrick    

21 октября 2019 в 16:56

1 ответ


  • Как сохранить файл csv, чтобы iPython shell мог открыть и использовать его?

    Я новичок в Python. У меня возникли проблемы с открытием моего файла csv в iPython shell, хотя я могу открыть свой файл в Spyder just find. Как я могу правильно сохранить файл csv или любой другой файл, который будет использоваться как Spyder, так и iPython? Например, я попытался открыть и…

  • Как открыть файл CSV в iPython?

    Я новичок в Python. Я скачал файл csv для использования. Я использую пакет Anaconda в Python 2.7 на Windows 8.1. Я могу открыть и прочитать файл в Spyder отлично, но когда я пытаюсь открыть его в iPython shell, я получаю следующее сообщение об ошибке: [Errno 2] No such file or directory:…



1

Я не думаю, что есть прямой способ сделать IPython или любой shell, чтобы открыть документацию в интернете, потому что основная задача оболочек-позволить вам взаимодействовать с вещами, для которых они являются оболочками.

Однако мы могли бы написать сценарий, чтобы открыть новую вкладку в браузере с документацией. Вот так:

import webbrowser

docsList = {
    "numpy" : lambda x: "https://docs.scipy.org/doc/numpy/reference/generated/" + x + ".html",
    "scipy" : lambda x: "https://docs.scipy.org/doc/scipy/reference/generated/" + x + ".html",
    "matplotlib" : lambda x: "https://matplotlib.org/api/" + x.split('.')[1] + "_api.html",
    "default" : lambda x: "https://www.google.com/search?q=documentation+" + x
    }

def online(method_name):
    """
    Opens up the documentation for method_name on the default browser.
    If the package doesn't match any entry in the dictionary, falls back to
    Google.

    Usage
    -------
    >>> lookUp.online("numpy.linalg.cholesky")
    >>> lookUp.online("matplotlib.contour")
    """
    try:
        url = make_url(method_name)
    except AttributeError:
        print("Enter the method name as a string and try again")
        return

    webbrowser.open(url, new = 2)
    return


def make_url(method_name):
    package_name = method_name.split('.')[0]
    try:
        return docsList[package_name](method_name)
    except KeyError:
        return docsList["default"](method_name)

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

Предостережения:

Этот метод принимает строки в качестве входных данных, поэтому, если вы вызовете его в функции, он выдаст ошибку.

>>> lookUp.online("numpy.linalg.cholesky")

Будет работать.

>>> lookUp.online(numpy.linalg.cholesky)

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

Поделиться


Tejas Shah    

23 октября 2019 в 19:43


Похожие вопросы:

Как открыть ссылку и ссылку не отправлять?

Здравствуйте друзья у меня вопрос, Как открыть ссылку с другого сайта и не отправлять рефереру? Сайт, с которого вы пытались получить ссылку, обнаруживает заголовок и не дает ссылке работать. Сайт,…

Как открыть историю команд ipython в текстовом редакторе?

Я использую машину windows и хотел бы открыть команды истории ipython с помощью текстового редактора по умолчанию. Есть ли команда, которая позволяет мне это сделать? Спасибо.

Можете открыть существующую записную книжку в записную книжку IPython

Я хочу открыть блокнот, сказать: IPython-за пределами нормального Python. Чтобы достичь этого, я выполняю следующие шаги по порядку. Переместитесь в то место, где установлен Блокнот IPython. CD to…

Как сохранить файл csv, чтобы iPython shell мог открыть и использовать его?

Я новичок в Python. У меня возникли проблемы с открытием моего файла csv в iPython shell, хотя я могу открыть свой файл в Spyder just find. Как я могу правильно сохранить файл csv или любой другой…

Как открыть файл CSV в iPython?

Я новичок в Python. Я скачал файл csv для использования. Я использую пакет Anaconda в Python 2.7 на Windows 8.1. Я могу открыть и прочитать файл в Spyder отлично, но когда я пытаюсь открыть его в…

python -м, чтобы открыть IPython ноутбук из Windows Powershell

Я использовал, чтобы быть в состоянии открыть ноутбук IPython, открыв powershell и, вписав в Ipython Notebook В какой-то момент несколько месяцев назад это не сработало, и я получил бы ошибку …

Как открыть IPython переводчик в emacs?

Чтобы использовать IPython во время разработки Python в Emacs, я открывал terminal и набирал ipython . Это не похоже на правильный способ сделать это. Во-первых, мой буфер перечисляет этот буфер как…

Откройте ‘ipython notebook’ как: IPython notebook vs Jupyter

Я ожидал найти больше документации по следующим вопросам: С одного компьютера: C:\Python>ipython notebook открывает браузер как ‘IPython Notebook’ . Со второго компьютера: C:\Python>ipython…

дважды щелкните, чтобы открыть записную книжку ipython

Сообщения по теме: откройте блокнот ipython двойным щелчком мыши на osx Как открыть блокнот Ipython двойным щелчком мыши? Я всегда записываю компакт-диск в каталог записной книжки, затем набираю…

Использование профилей с ipython/jupyter

Вот вывод справки из ipython: Примеры ipython notebook # start the notebook ipython notebook —profile=sympy # use the sympy profile ipython notebook —certfile=mycert.pem # use SSL/TLS certificate…

Анализ данных с помощью pandas. Часть 0: введение, jupyter (ipython)

pandas — это Python библиотека для анализа и обработки данных. Она действительно быстрая и позволяет вам легко исследовать данные.

Цель этого цикла статей — дать конкретные примеры использования pandas.

Быстрый тур в IPython Notebook

Будет полезным повторить это в интерактивном режиме, поэтому лучше установить ipython с помощью pip:

sudo pip3 install jupyter pandas matplotlib

После чего можно запустить сеанс ipython просто написав:

jupyter notebook

После этого в браузере откроется сервер jupyter. Создадим Python 3 notebook.

Во-первых, запустим код из ячейки.

In [1]:

import pandas as pd

print("Hi! This is a cell. Press the ▶ button above to run it")
Hi! This is a cell. Press the ▶ button above to run it

Помимо этой кнопки, можно запускать код из ячейки с помощью Ctrl+Enter.

Одна из самых полезных вещей в IPython notebook это автодополнение.

Попробуйте следующее: нажмите в ячейке сразу после read_csv( и нажмите Shift+Tab 4 раза, медленно. Посмотрите, что получится.

Вот что получается после 2 раз:

Хорошо, теперь попробуем автодополнение. Введите pd.r (первая буква функции) и посмотрите, какие варианты предлагаются.

Вы должны увидеть следующее:

Написание кода

Написание кода в ячейках абсолютно естественно.

In [2]:

def print_10_nums():
    for i in range(10):
        print(i, end=' ')

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

IPython имеет множество магических функций. Далее идёт пример сравнения sum() с генератором списка и с помощью итератора, используя магическую функцию %time.

In [4]:

%time sum([x for x in range(100000)])
CPU times: user 20 ms, sys: 0 ns, total: 20 ms
Wall time: 18.5 ms

In [5]:

%time sum(x for x in range(100000))
CPU times: user 8 ms, sys: 0 ns, total: 8 ms
Wall time: 8.34 ms

Установка, запуск и подключение к Jupyter Notebook на удаленном сервере

Автор выбрал Apache Software Foundation для получения пожертвования в размере $100 в рамках программы Write for DOnations.

Введение

Jupyter Notebook — интерактивное веб-приложение с открытым исходным кодом, позвоялющее писать и запускать программный код более чем на 40 языках программирования, включая Python, R, Julia и Scala. Jupyter Notebook — это продукт Project Jupyter, очень полезный для итеративного программирования, поскольку он позволяет написать небольшой фрагмент кода, запустить его и вывести результат.

Jupyter Notebook позволяет создавать документы в форме блокнота, обычно называемые «блокнотами». Блокноты, создаваемые Jupyter Notebook, представляют собой доступные для публикации и воспроизведения исследовательские документы, содержащие элементы расширенного текста, уравнения, код и результаты исполнения (рисунки, таблицы, интерактивные графики). Блокноты можно экспортировать в файлы кода, документы HTML или PDF, а также использовать для создания интерактивных слайд-шоу или веб-страниц.

Эта статья расскажет вам о том, как установить и настроить приложение Jupyter Notebook на веб-сервере Ubuntu 18.04 и подключиться к нему с локального компьютера. Также мы покажем, как использовать Jupyter Notebook для запуска примера кода на Python.

Предварительные требования

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

Кроме того, если на вашем локальном компьютере используется Windows, вам нужно будет установить PuTTY для создания туннеля SSH для подключения к серверу. Для загрузки и установки PuTTY следуйте указаниям обучающего модуля Создание ключей SSH с помощью PuTTY в Windows.

Шаг 1 — Установка Jupyter Notebook

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

Если вы выполнили обучающие модули, указанные в разделе «Предварительные требования», у вас должны быть установлены Python 3, pip и виртуальная среда. Приведенные в этом руководстве примеры следуют указаниям по конвенции обучающего модуля Python 3, где виртуальной среде присваивается имя my_env, но вы можете использовать любое другое имя.

Начнем с активации виртуальной среды:

  • source my_env/bin/activate

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

Теперь вы находитесь в виртуальной среде и можете начать установку Jupyter Notebook:

  • python3 -m pip install jupyter

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

Output

. . . Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

Установка Jupyter Notebook на ваш сервер завершена. Теперь мы перейдем к запуску приложения.

Шаг 2 — Запуск Jupyter Notebook

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

Чтобы запустить сервер Jupyter Notebook, введите следующую команду:

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

Output

[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret [I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/environments [I 19:46:22.365 NotebookApp] 0 active kernels [I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at: [I 19:46:22.366 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser. [C 19:46:22.367 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675

Возможно вы заметили в результатах предупреждение No web browser found. Это можно ожидать, поскольку приложение запущено на сервере, а вы вряд ли установили на него браузер. В следующем разделе этого обучающего модуля вы узнаете, как подключиться к Notebook на сервере, используя туннель SSH.

Сейчас закройте Jupyter Notebook. Для этого нажмите CTRL+C, затем y, а затем ENTER для подтверждения:

Output

Shutdown this notebook server (y/[n])? y [C 20:05:47.654 NotebookApp] Shutdown confirmed [I 20:05:47.654 NotebookApp] Shutting down 0 kernels

Затем выйдите из сервера, используя команду exit:

Вы только что запустили Jupyter Notebook на своем сервере. Чтобы получить доступ к приложению и начать работать с блокнотами, вам потребуется подключиться к приложению через туннель SSH и браузер на локальном компьютере.

Шаг 3 — Подключение к приложению Jupyter Notebook через туннель SSH

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

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

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

Примечание. Приложение Jupyter Notebook можно установить через веб-консоль DigitalOcean, однако подключение к приложению через туннель SSH следует выполнять с помощью терминала или PuTTY.

Создание туннелей SSH в macOS или Linux

Если на вашем локальном компьютере используется Linux или macOS, туннель SSH можно создать, запустив всего одну команду.

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

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

  • ssh -L 8000:localhost:8888 [email protected]_server_ip

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

  • source ~/environments/my_env/bin/activate

Затем запустите приложение Jupyter Notebook:

Для подключения к Jupyter Notebook откройте в своем предпочитаемом браузере локальный порт на локальном хосте: http://localhost:8000. После подключения к Jupyter Notebook переходите к шагу 4, чтобы научиться его использовать.

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

PuTTY — клиент SSH с открытым исходным кодом для Windows, который можно использовать для подключения к вашему серверу. После загрузки и установки PuTTY на ваш компьютер Windows (как описано в обучающем модуле из предварительных требований) откройте программу и введите URL или IP-адрес вашего сервера, как показано здесь:

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

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

  • source ~/environments/my_env/bin/activate

Затем запустите Jupyter Notebook:

Затем откройте в предпочитаемом браузере локальный порт, например http://localhost:8000 (или любой выбранный номер порта), чтобы подключиться к экземпляру Jupyter Notebook, запущенному на сервере. После подключения к Jupyter Notebook переходите к шагу 4, чтобы научиться его использовать.

Шаг 4 — Использование Jupyter Notebook

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

where $x = 2$

Чтобы преобразовать разметку в расширенный текстовый формат, нажмите CTRL + ENTER, и получите следующий результат:

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

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

x = 2
y = x*x
print(y)

Для запуска кода нажмите CTRL + ENTER и получите следующий результат:

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

Заключение

Теперь вы можете писать воспроизводимый код Python и текст, используя приложение Jupyter Notebook на удаленном сервере. Чтобы пройти быстрый обзор Jupyter Notebook, нажмите Help (Справка) в верхней панели навигации и выберите пункт User Interface Tour (Обзор пользовательского интерфейса), как показано здесь:

Если вы заинтересовались, вы можете узнать больше о Jupyter Notebook из документации Project Jupyter. Также вы можете использовать полученные в этом обучающем модуле знания, чтобы научиться программировать на Python 3.

Встроенные волшебные команды — документация IPython 7.21.0

Откройте редактор и выполните полученный код.

Использование:

% редактировать [параметры] [аргументы]

% edit запускает обработчик редактора IPython. Версия этого хука по умолчанию:
установите для вызова редактора, указанного в переменной среды $ EDITOR.
Если он не найден, по умолчанию будет использоваться vi в Linux / Unix и
блокнот под виндой. См. Конец этой строки документации, чтобы узнать, как изменить
крючок редактора.

Вы также можете установить значение этого редактора через
TerminalInteractiveShell.editor в вашем файле конфигурации.
Это полезно, если вы хотите использовать другой редактор, отличный от вашего обычного.
по умолчанию с IPython (и для пользователей Windows, которые обычно не устанавливают
переменные среды).

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

При вызове без аргументов% edit открывает пустой редактор с
временный файл и выполнит содержимое этого файла, когда вы
закройте его (не забудьте сохранить!).

Опции:

-n <номер>: открыть редактор с указанного номера строки. По умолчанию,
ловушка редактора IPython использует синтаксис unix «редактор + N имя файла», но
вы можете настроить это, предоставив свой собственный модифицированный хук, если ваш
любимый редактор поддерживает спецификации номеров строк с разными
синтаксис.

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

-r: использовать «сырой» ввод.Эта опция применима только к входным данным, взятым из
история пользователя. По умолчанию используется «обработанная» история, так что
magics загружены в их преобразованную версию в действительный Python. Если
эта опция задана, необработанный ввод, набранный в командной строке
вместо этого. Когда вы выйдете из редактора, он будет выполнен
Собственный процессор IPython.

-x: не выполнять отредактированный код сразу после выхода. Это
в основном полезно, если вы редактируете программы, которые нужно вызывать с
аргументы командной строки, которые затем можно выполнить с помощью% run.

Аргументы:

Если приведены аргументы, существуют следующие возможности:

  • Если аргументом является имя файла, IPython загрузит его в
    редактор. Он выполнит свое содержимое с помощью execfile (), когда вы выйдете,
    загрузка любого кода из файла в ваше интерактивное пространство имен.

  • Аргументы — это диапазоны истории ввода, например «7 ~ 1 / 4-6».
    Синтаксис такой же, как и в магии% history.

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

  • Если аргумент — это имя объекта (кроме строки),
    IPython попытается найти файл, в котором он был определен, и откроет
    редактор в том месте, где он определен. Вы можете использовать функцию редактирования %
    чтобы загрузить редактор точно в том месте, где определена «функция»,
    отредактируйте его, и файл будет запущен автоматически.

  • Если объект является макросом (подробности см. В% macro), откроется ваш
    указанный редактор с временным файлом, содержащим данные макроса.При выходе макрос перезагружается с содержимым файла.

Примечание: открытие в точной строке поддерживается только в Unix, а некоторые
редакторы (такие как kedit и gedit до Gnome 2.8) не понимают
Параметр «+ НОМЕР», необходимый для этой функции. Хорошие редакторы любят
(X) Emacs, vi, jed, pico и joe — все делают.

После выполнения вашего кода% edit вернет в качестве вывода код, который вы
набирается в редакторе (кроме случаев, когда это уже существующий файл). Сюда
вы можете перезагрузить код при последующих вызовах% edit как переменной,
через _ или Out [], где — это номер подсказки
выход.

Обратите внимание, что% edit также доступен через псевдоним% ed.

Это пример создания простой функции внутри редактора и
затем измените его. Сначала запустите редактор:

 В [1]: редактировать
Редактирование ... готово. Выполнение отредактированного кода ...
Out [1]: 'def foo (): \ n print "foo () был определен при редактировании
сессия "\ n '
 

Затем мы можем вызвать функцию foo ():

 В [2]: foo ()
foo () был определен в сеансе редактирования
 

Теперь редактируем foo.IPython автоматически загружает редактор с
(временный) файл, в котором ранее была определена функция foo ():

 В [3]: редактировать foo
Редактирование ... готово. Выполнение отредактированного кода ...
 

И если мы снова вызовем foo (), мы получим модифицированную версию:

 В [4]: ​​foo ()
foo () теперь изменен!
 

Вот пример того, как последовательно редактировать фрагмент кода
раз. Сначала звоним редактору:

 В [5]: редактировать
Редактирование ... готово. Выполнение отредактированного кода ...
Привет
Out [5]: "print 'hello' \ n"
 

Теперь мы снова вызываем его с предыдущим выводом (сохраненным в _):

 В [6]: редактировать _
Редактирование... Готово. Выполнение отредактированного кода ...
Привет, мир
Out [6]: "print 'hello world' \ n"
 

Теперь мы вызываем его с выходом # 8 (хранится в _8, также как Out [8]):

 В [7]: редактировать _8
Редактирование ... готово. Выполнение отредактированного кода ...
и снова здравствуйте
Out [7]: "print 'hello again' \ n"
 

Изменение обработчика редактора по умолчанию:

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

Документация IPython — документация IPython 7.21.0

Важно

Эта документация охватывает IPython версии 6.0 и выше. Начиная с
версия 6.0, IPython перестал поддерживать совместимость с версиями Python
ниже 3.3, включая все версии Python 2.7.

Если вы ищете версию IPython, совместимую с Python 2.7,
используйте версию IPython 5.x LTS и обратитесь к ее документации (LTS
релиз с долгосрочной поддержкой).

Выпуск

7.21.0

Дата

26 февраля 2021

Добро пожаловать в официальную документацию IPython

IPython предоставляет богатый набор инструментов, который поможет вам максимально эффективно использовать Python
интерактивно. Его основные компоненты:

Усовершенствованные интерактивные оболочки и ядро ​​Python имеют следующие основные
особенности:

  • Комплексный самоанализ объекта.

  • История ввода, постоянная между сеансами.

  • Кэширование результатов вывода во время сеанса с автоматически сгенерированным
    использованная литература.

  • Расширяемое завершение вкладок, с поддержкой по умолчанию для завершения Python
    переменные и ключевые слова, имена файлов и ключевые слова функций.

  • Расширяемая система «волшебных» команд для управления окружающей средой и
    выполнение многих задач, связанных с IPython или операционной системой.

  • Богатая конфигурационная система с легким переключением между различными настройками
    (проще, чем каждый раз менять переменные среды $ PYTHONSTARTUP ).

  • Запись и перезагрузка сеанса.

  • Обработка расширяемого синтаксиса для особых ситуаций.

  • Доступ к системной оболочке с расширяемой пользователем системой псевдонимов.

  • Легко встраивается в другие программы Python и графические интерфейсы.

  • Интегрированный доступ к отладчику pdb и профилировщику Python.

Интерфейс командной строки наследует вышеуказанные функции и добавляет

  • настоящее многострочное редактирование с помощью prompt_toolkit.

  • подсветка синтаксиса при вводе

  • интеграция с редактором командной строки для улучшения рабочего процесса.

Ядро также имеет свои особенности. При использовании с совместимым интерфейсом
позволяет:

  • объект для создания богатого отображения HTML, изображений, латекса, звука и
    Видео.

  • интерактивных виджетов с использованием пакета ipywidgets.

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

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

Последняя разрабатываемая версия всегда доступна на GitHub IPython.
репозиторий.

Online Python Interpreter — онлайн-редактор

  Ярлыки IDE: 
Новый файл: Ctrl-M
Выполнить код: F9
Код отладки: F8
Сохранить проект: Ctrl-S
Украсить код: Ctrl-B
Меню настроек: Ctrl-Shift-S
Информация: Ctrl-I

  Ярлыки редактора: 
showSettingsMenu: Ctrl-,
goToNextError: Alt-E
goToPreviousError: Alt-Shift-E
selectall: Ctrl-A
готолин: Ctrl-L
сложить: Alt-L | Ctrl-F1
развернуть: Alt-Shift-L | Ctrl-Shift-F1
toggleFoldWidget: F2
toggleParentFoldWidget: Alt-F2
foldOther: Alt-0
развернуть: Alt-Shift-0
findnext: Ctrl-K
findprevious: Ctrl-Shift-K
selectOrFindNext: Alt-K
selectOrFindPrevious: Alt-Shift-K
найти: Ctrl-F
перезапись: Вставить
selecttostart: Ctrl-Shift-Home
gotostart: Ctrl-Home
выбор: Shift-вверх
golineup: Вверх
selecttoend: Ctrl-Shift-End
gotoend: Ctrl-End
selectdown: Shift-вниз
голиндаун: Вниз
selectwordleft: Ctrl-Shift-Left
gotowordleft: Ctrl-Left
selecttolinestart: Alt-Shift-Left
gotolinestart: Alt-Left | На главную
selectleft: Shift-Left
gotoleft: Left
selectwordright: Ctrl-Shift-вправо
gotowordright: Ctrl-Вправо
selecttolineend: Alt-Shift-Right
gotolineend: Alt-Right | Конец
selectright: Shift-Right
gotoright: Право
selectpagedown: Shift-Pagedown
gotopagedown: Pagedown
selectpageup: Shift-Pageup
gotopageup: Pageup
прокрутка: Ctrl-Up
прокрутка вниз: Ctrl-вниз
selectlinestart: Shift-Home
selectlineend: Shift-End
переключить запись: Ctrl-Alt-E
replaymacro: Ctrl-Shift-E
скачкообразное сопоставление: Ctrl-P
выбор совпадения: Ctrl-Shift-P
expandToMatching: Ctrl-Shift-M
удалить линию: Ctrl-D
duplicateSelection: Ctrl-Shift-D
строки сортировки: Ctrl-Alt-S
togglecomment: Ctrl- /
toggleBlockComment: Ctrl-Shift- /
modifyNumberUp: Ctrl-Shift-вверх
modifyNumberDown: Ctrl-Shift-вниз
заменить: Ctrl-H
отменить: Ctrl-Z
повторить: Ctrl-Shift-Z | Ctrl-Y
copylinesup: Alt-Shift-Up
movelinesup: Alt-Up
copylinesdown: Alt-Shift-Down
movelinesdown: Alt-Down
del: Удалить
Backspace: Shift-Backspace | Backspace
cut_or_delete: Shift-Delete
removetolinestart: Alt-Backspace
removetolineend: Alt-Delete
removewordleft: Ctrl-Backspace
removewordright: Ctrl-Delete
outdent: Shift-Tab
отступ: Tab
blockoutdent: Ctrl- [
blockindent: Ctrl-]
транспозлеттеры: Ctrl-T
верхний регистр: Ctrl-U
tolowercase: Ctrl-Shift-U
expandtoline: Ctrl-Shift-L
addCursorAbove: Ctrl-Alt-Up
addCursorBelow: Ctrl-Alt-Down
addCursorAboveSkipCurrent: Ctrl-Alt-Shift-Up
addCursorBelowSkipCurrent: Ctrl-Alt-Shift-Down
selectMoreBefore: Ctrl-Alt-Left
selectMoreAfter: Ctrl-Alt-Right
selectNextBefore: Ctrl-Alt-Shift-Left
selectNextAfter: Ctrl-Alt-Shift-Right
splitIntoLines: Ctrl-Alt-L
alignCursors: Ctrl-Alt-A
findAll: Ctrl-Alt-K
showKeyboardShortcuts: Ctrl-Alt-H
           

Шесть простых способов запустить Jupyter Notebook в облаке

Есть много способов поделиться статической записной книжкой Jupyter с другими, например опубликовать ее на GitHub или поделиться ссылкой nbviewer.Однако получатель может взаимодействовать с файлом записной книжки, только если у него уже установлена ​​среда Jupyter Notebook.

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

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

  • Они не требуют от вас ничего устанавливать на вашем локальном компьютере.
  • Они полностью бесплатны (или у них есть бесплатный план).
  • Они предоставляют вам доступ к среде Jupyter Notebook (или среде, подобной Jupyter).
  • Они позволяют импортировать и экспортировать записные книжки, используя стандартный формат файла .ipynb.
  • Они поддерживают язык Python (и большинство из них также поддерживают другие языки).

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

Содержание

Примечание: Если вам просто нужна краткая сводка, посмотрите сравнительную таблицу.


Критерии сравнения

Вот критерии, по которым я сравнил каждую из шести услуг:

Поддерживаемые языки: Поддерживает ли эта служба какие-либо языки программирования, кроме Python?

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

Сходство интерфейса: Если служба предоставляет интерфейс, подобный Jupyter (а не собственный интерфейс Jupyter), насколько похож его интерфейс на Jupyter? (Это упрощает переход существующих пользователей Jupyter на эту службу.)

Сочетания клавиш: Использует ли эта служба те же сочетания клавиш, что и Jupyter Notebook?

Отсутствующие функции: Есть ли что-нибудь, что может делать Jupyter Notebook, что эта служба не поддерживает?

Добавленные функции: Есть ли что-нибудь, что может сделать этот сервис, что Jupyter Notebook не поддерживает?

Простота работы с наборами данных: Насколько легко этот сервис позволяет работать с вашими собственными наборами данных?

Доступ в Интернет: Предоставляет ли эта услуга доступ в Интернет из Ноутбука, чтобы при необходимости вы могли читать данные с URL-адресов?

Возможность работать конфиденциально: Позволяет ли эта услуга сохранить конфиденциальность вашей работы?

Возможность публично поделиться: Предоставляет ли эта услуга возможность публично поделиться своей работой?

Возможность совместной работы: Позволяет ли эта услуга пригласить кого-нибудь для совместной работы на ноутбуке, и может ли сотрудничество происходить в режиме реального времени?

Производительность бесплатного плана: Какие вычислительные ресурсы (ОЗУ и ЦП) предоставляет эта услуга? Предоставляет ли он доступ к графическому процессору (что полезно для глубокого обучения)? Сколько места на диске включено? Как долго может длиться сеанс?

Возможность обновления для повышения производительности: Можете ли вы заплатить за эту услугу, чтобы получить доступ к большему количеству вычислительных ресурсов?

Документация и техническая поддержка: Хорошо ли задокументирована услуга? Сможете ли вы связаться с кем-нибудь, если столкнетесь с проблемой?


1.Папка

Binder — это сервис, предоставляемый Binder Project, который является членом экосистемы с открытым исходным кодом Project Jupyter. Он позволяет вам вводить URL-адрес любого общедоступного репозитория Git, и он откроет этот репозиторий в собственном интерфейсе Jupyter Notebook. Вы можете запускать любые записные книжки в репозитории, однако любые внесенные вами изменения не будут сохранены обратно в репозиторий. Вам не нужно создавать учетную запись в Binder, и вам не нужно быть владельцем репозитория, хотя репозиторий должен включать файл конфигурации, который определяет его требования к пакету.

Поддерживаемые языки: Python (2 и 3), R, Julia и любые другие языки, поддерживаемые Jupyter.

Возможность установки пакетов: Вы можете указать точные требования к пакету, используя файл конфигурации (например, environment.yml или requirements.txt ).

Сходство интерфейса: Binder использует собственный интерфейс Jupyter Notebook.

Сочетания клавиш: Binder использует те же сочетания клавиш, что и Jupyter.

Отсутствующие элементы: Нет.

Добавленные функции: Нет.

Простота работы с наборами данных: Если ваш набор данных находится в том же репозитории Git, он будет автоматически доступен в Binder. Если вашего набора данных нет в этом репозитории, но он доступен по любому общедоступному URL-адресу, вы можете добавить в репозиторий специальный файл, сообщающий Binder о загрузке вашего набора данных. Однако Binder не поддерживает доступ к частным наборам данных.

Доступ в Интернет: Да.

Возможность работать конфиденциально: Нет, так как работает только с общедоступными репозиториями Git.

Возможность публиковать: Да. Вы можете поделиться URL-адресом, который ведет непосредственно к вашему Binder, или кто-то может запускать ваши записные книжки с помощью веб-сайта Binder (если им известен URL-адрес вашего репозитория Git).

Возможность совместной работы: Нет. Если вы хотите работать с кем-то в одной записной книжке и ваш репозиторий размещен на GitHub, вы можете вместо этого использовать обычный рабочий процесс запроса на вытягивание.

Производительность бесплатного плана: Вам будет доступно до 2 ГБ ОЗУ. Нет конкретного ограничения на объем дискового пространства, хотя они просят вас не включать «очень большие файлы» (более нескольких сотен мегабайт). Binder может запускаться медленно, особенно когда он запускается в недавно обновленном репозитории. Сеансы будут отключены после 20 минут бездействия, хотя они могут длиться 12 часов или дольше. У Binder есть другие правила использования, включая ограничение в 100 одновременных пользователей для любого репозитория.

Возможность обновления для повышения производительности: Нет. Однако у вас есть возможность настроить собственное развертывание BinderHub, которое может обеспечить те же функции, что и Binder, но при этом позволяет настраивать среду (например, увеличивать вычислительные ресурсы или разрешение личных файлов).

Документация и техническая поддержка: Binder имеет обширную документацию. Поддержка сообщества доступна через чат Gitter и форум Discourse, а проблемы с продуктами отслеживаются на GitHub.

Заключение: Если ваши записные книжки уже хранятся в общедоступном репозитории GitHub, Binder — самый простой способ позволить другим пользователям взаимодействовать с ними. Пользователям не нужно создавать учетную запись, и они будут чувствовать себя как дома, если они уже знают, как использовать Jupyter Notebook. Однако следует помнить об ограничениях производительности и пользовательских ограничениях!


2. Ядра Kaggle

Kaggle наиболее известен как платформа для соревнований по науке о данных.Однако они также предоставляют бесплатную услугу под названием Kernels, которую можно использовать независимо от их соревнований. После создания учетной записи Kaggle (или входа в систему с помощью Google или Facebook) вы можете создать ядро, которое использует либо интерфейс записной книжки, либо интерфейс сценариев, хотя я сосредоточусь на интерфейсе записной книжки ниже.

Поддерживаемые языки: Python (только 3) и R.

Возможность установки пакетов: Сотни пакетов предустановлены, и вы можете установить дополнительные пакеты, используя pip или указав репозиторий GitHub пакета.Однако любые дополнительные пакеты, которые вы устанавливаете, необходимо будет переустанавливать в начале каждого сеанса. Кроме того, вы можете попросить Kaggle включить дополнительные пакеты в их установку по умолчанию.

Сходство интерфейса: Визуально интерфейс ядра сильно отличается от интерфейса Jupyter. В верхней части экрана нет строки меню или панели инструментов, справа есть складная боковая панель для настройки параметров, а под ноутбуком есть консоль.Однако работа в блокноте Kernels на самом деле очень похожа на работу в блокноте Jupyter, особенно если вам удобны сочетания клавиш Jupyter. Также обратите внимание, что скоро будет выпущен переработанный интерфейс (показанный на скриншоте выше), который больше похож на интерфейс Jupyter и включает простую строку меню.

Сочетания клавиш: Ядра используют те же сочетания клавиш, что и Jupyter.

Отсутствующие элементы:

  • Поскольку ядра (пока) не включают в себя строку меню или панель инструментов, многие действия можно выполнять только с помощью сочетаний клавиш или палитры команд.
  • Вы не можете загрузить записную книжку в других полезных форматах, таких как сценарий Python, веб-страница HTML или файл Markdown.

Добавленные функции:

  • Kernels включает облегченную систему контроля версий. Каждый раз, когда вы хотите сохранить свою работу, есть кнопка «зафиксировать», которая запускает всю записную книжку сверху вниз и добавляет новую версию в историю. (Во время этого процесса вы можете продолжать работать, что очень важно для ноутбуков с длительным сроком эксплуатации.) Хотя вы не можете назвать версии, вы можете отобразить «разницу» между любыми двумя версиями.
  • Ядра

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

Простота работы с наборами данных: Вы можете загрузить набор данных в Kaggle со своего локального компьютера, URL-адреса или репозитория GitHub, и он будет бесплатно размещен в другом сервисе Kaggle, который называется Datasets. Вы можете сделать набор данных частным или общедоступным.К любому загружаемому вами набору данных, а также к любому общедоступному набору данных, загруженному пользователем Kaggle, может получить доступ любое из ваших ядер. Максимальный размер каждого набора данных составляет 20 ГБ, и одно ядро ​​может получить доступ к нескольким наборам данных.

Доступ в Интернет: Да.

Возможность работать в частном порядке: Да.

Возможность публиковать: Да. Если вы решите сделать свое ядро ​​общедоступным, любой сможет получить к нему доступ, не создавая учетную запись Kaggle, и любой, у кого есть учетная запись Kaggle, может комментировать ваше ядро ​​или скопировать его в свою учетную запись.Кроме того, Kaggle также предоставляет вам страницу общедоступного профиля, на которой отображаются все ваши общедоступные ядра и наборы данных.

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

Производительность бесплатного плана: Вы можете использовать либо 4-ядерный ЦП с 17 ГБ ОЗУ, либо 2-ядерный ЦП с 14 ГБ ОЗУ и графический процессор.У вас будет 5 ГБ «сохраненного» дискового пространства и 17 ГБ «временного» дискового пространства, хотя любое дисковое пространство, используемое вашим набором данных, не учитывается в этих цифрах. Сеансы будут отключены через 60 минут бездействия, хотя они могут длиться до 9 часов.

Возможность обновления для повышения производительности:

Документация и техническая поддержка: Kernels имеет соответствующую документацию. Поддержка доступна через контактную форму и форум.

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


3. Google Colaboratory (Colab)

Google Colaboratory, обычно называемый «Google Colab», доступен всем, у кого есть учетная запись Google. Пока вы вошли в Google, вы можете быстро начать работу, создав пустую записную книжку, загрузив существующую записную книжку или импортировав записную книжку из любого общедоступного репозитория GitHub. Ваши записные книжки Colab автоматически сохраняются в специальной папке на вашем Google Диске, и вы даже можете создавать новые записные книжки прямо с Диска.

Поддерживаемые языки: Python (2 и 3) и Swift (добавлен в январе 2019 года). Ядра также могут быть установлены для других языков, хотя процесс установки зависит от языка и плохо документирован.

Возможность установки пакетов: Сотни пакетов предустановлены, и вы можете установить дополнительные пакеты с помощью pip. Однако любые дополнительные пакеты, которые вы устанавливаете, необходимо будет переустанавливать в начале каждого сеанса.

Сходство интерфейса: Визуально интерфейс Colab очень похож на интерфейс Jupyter.Однако работа в Colab на самом деле очень отличается от работы в Jupyter Notebook:

.

  • Большинство пунктов меню разные.
  • В Colab была изменена некоторая стандартная терминология («среда выполнения» вместо «ядро», «текстовая ячейка» вместо «ячейка уценки» и т. Д.).
  • Colab изобрел новые концепции, которые вы должны понимать, такие как «игровой режим».
  • Командный режим и режим редактирования в Colab работают иначе, чем в Jupyter.

Сочетания клавиш: В Colab большинство сочетаний клавиш с одной буквой, используемых Jupyter (например, «a» для «вставить ячейку выше»), были изменены на многоступенчатый процесс («Ctrl + m», за которым следует «а»), хотя Colab позволяет настраивать ярлыки.

Отсутствующие элементы:

  • Поскольку в строке меню Colab отсутствуют некоторые элементы, а панель инструментов остается очень простой, некоторые действия можно выполнять только с помощью сочетаний клавиш.
  • Вы не можете загрузить свой блокнот в других полезных форматах, таких как веб-страница HTML или файл Markdown (хотя вы можете загрузить его как скрипт Python).

Добавленные функции:

  • Colab включает облегченную систему контроля версий. Он часто сохраняет текущее состояние вашей записной книжки, и вы можете просматривать историю изменений.Однако вы не можете отобразить «разницу» между версиями, а это значит, что вам придется проводить какие-либо сравнения вручную.
  • Colab позволяет добавлять поля формы в записную книжку, что позволяет параметризировать код в интерактивном режиме. Однако эти поля работают только в Colab.
  • Когда вы создаете заголовок раздела в своей записной книжке, Colab делает каждый раздел сворачиваемым и автоматически создает «оглавление» на боковой панели, что упрощает навигацию по большим блокнотам.

Простота работы с наборами данных: Вы можете загрузить набор данных для использования в записной книжке Colab, но он будет автоматически удален после завершения сеанса. В качестве альтернативы вы можете разрешить Colab читать файлы с вашего Google Диска, хотя это сложнее, чем должно быть. Colab также включает соединители с другими сервисами Google, такими как Google Таблицы и Google Cloud Storage.

Доступ в Интернет: Да.

Возможность работать в частном порядке: Да.

Возможность публиковать: Да. Если вы решите сделать свою записную книжку общедоступной и поделитесь ссылкой, любой сможет получить к ней доступ, не создавая учетную запись Google, и любой, у кого есть учетная запись Google, может скопировать ее в свою учетную запись. Кроме того, вы можете разрешить Colab сохранить копию вашей записной книжки на GitHub или Gist, а затем поделиться ею оттуда.

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

Производительность бесплатного плана: Colab предоставляет вам доступ к графическому процессору или TPU. В противном случае Google не предоставляет никаких спецификаций для своей среды. Если вы подключите Colab к Google Диску, это даст вам до 15 ГБ дискового пространства для хранения ваших наборов данных. Сеансы будут отключены после 60 минут бездействия, хотя они могут длиться до 12 часов.

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

Документация и техническая поддержка: Colab имеет минимальный набор документации, которая содержится на странице часто задаваемых вопросов и множестве примеров записных книжек. Поддержка доступна через GitHub issues, а поддержка сообщества доступна через Stack Overflow.

Заключение: Самая сильная сторона Colab заключается в том, что с него легко начать работу, поскольку у большинства людей уже есть учетная запись Google, и легко делиться блокнотами, поскольку функция совместного использования работает так же, как Google Docs.Однако громоздкие сочетания клавиш и сложность работы с наборами данных являются существенными недостатками. Возможность совместной работы в одной записной книжке полезна, но менее полезна, чем могла бы быть, поскольку вы не используете общую среду и не можете сотрудничать в режиме реального времени.


4. Ноутбуки Microsoft Azure

Чтобы начать работу с записными книжками Azure, вы сначала входите в систему с учетной записью Microsoft или Outlook (или создаете ее). Следующим шагом является создание «проекта», который структурирован идентично репозиторию GitHub: он может содержать одну или несколько записных книжек, файлы Markdown, наборы данных и любой другой файл, который вы хотите создать или загрузить, и все они могут быть организованы в папки.Также, как GitHub, вы можете инициализировать проект с помощью файла README, который будет автоматически отображаться на странице проекта. Если ваша работа уже хранится на GitHub, вы можете импортировать весь репозиторий прямо в проект.

Поддерживаемые языки: Python (2 и 3), R и F #.

Возможность установки пакетов: Сотни пакетов предустановлены, вы можете установить дополнительные пакеты с помощью pip или conda, и вы можете указать точные требования к пакету с помощью файла конфигурации (например, environment.yml или requirements.txt ).

Сходство интерфейса: Azure использует собственный интерфейс Jupyter Notebook.

Сочетания клавиш: Azure использует те же сочетания клавиш, что и Jupyter.

Отсутствующие элементы: Нет.

Добавленные функции:

  • Расширение RISE предустановлено, что позволяет мгновенно представить свой блокнот в виде слайд-шоу на основе open.js в реальном времени.
  • Пакет jupyter_contrib_nbextensions поставляется предустановленным, что дает вам легкий доступ к коллекции из более чем 50 расширений Jupyter Notebook для улучшения интерфейса ноутбука.

Простота работы с наборами данных: Вы можете загрузить набор данных в свой проект с локального компьютера или URL-адреса, и к нему можно получить доступ из любой записной книжки в вашем проекте. Azure также включает соединители с другими службами Azure, такими как служба хранилища Azure и различные базы данных Azure.

Доступ в Интернет: Да.

Возможность работать в частном порядке: Да.

Возможность публиковать: Да. Если вы решите сделать свой проект общедоступным, любой сможет получить к нему доступ без создания учетной записи Microsoft, и любой, у кого есть учетная запись Microsoft, может скопировать его в свою учетную запись.Кроме того, Azure также предоставляет вам страницу общедоступного профиля (очень похожую на профиль GitHub), на которой отображаются все ваши общедоступные проекты.

Возможность совместной работы: Нет, хотя это запланированная функция.

Производительность бесплатного плана: У вас будет доступ к 4 ГБ ОЗУ и 1 ГБ дискового пространства (для каждого проекта). Сеансы будут отключены после 60 минут бездействия, хотя они могут длиться 8 часов или дольше.

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

Документация и техническая поддержка: Azure имеет обширную документацию. Поддержка доступна через GitHub issues.

Заключение: Самая большая сила записных книжек Azure — это простота использования: структура проекта (заимствованная из GitHub) упрощает работу с несколькими записными книжками и наборами данных, а использование собственного интерфейса Jupyter означает, что существующие пользователи Jupyter будут иметь легкий переход.Однако оперативная память и дисковое пространство не особо щедры, а отсутствие совместной работы — большой пробел в функциональности.


5. CoCalc

CoCalc, сокращенно от «совместных вычислений», представляет собой интерактивное рабочее пространство для вычислений на Python, R, Julia и многих других языках. Он позволяет создавать и редактировать Jupyter Notebooks, рабочие листы Sage и документы LaTeX. После создания учетной записи CoCalc первым шагом является создание «проекта», который может содержать одну или несколько записных книжек, файлы Markdown, наборы данных и любой другой файл, который вы хотите создать или загрузить, и все они могут быть организованы в папки. .Интерфейс проекта сначала кажется немного подавляющим, но он выглядит гораздо более знакомым, когда вы создаете или открываете записную книжку.

Поддерживаемые языки: Python (2 и 3), R, Julia и многие другие языки.

Возможность установки пакетов: Сотни пакетов предустановлены. Вы можете установить дополнительные пакеты с помощью pip, но это недоступно при использовании бесплатного плана. Кроме того, вы можете попросить CoCalc включить дополнительные пакеты в их установку по умолчанию.

Сходство интерфейса: Хотя CoCalc не использует собственный интерфейс Jupyter Notebook (они переписали его с помощью React.js), интерфейс очень похож на Jupyter, с небольшими изменениями. Фактически вы можете переключиться на использование собственного Jupyter Notebook из CoCalc, хотя это не рекомендуется, поскольку вы потеряете доступ к наиболее ценным функциям CoCalc («путешествия во времени» и совместная работа в реальном времени, которые обсуждаются ниже).

Сочетания клавиш: CoCalc использует почти все те же сочетания клавиш, что и Jupyter.

Отсутствующие элементы: Нет.

Добавленные функции:

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

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

Доступ в Интернет: Нет, это недоступно при использовании бесплатного тарифного плана.

Возможность работать в частном порядке: Да.

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

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

Производительность бесплатного плана: У вас будет доступ к 1-ядерному общему ЦП с 1 ГБ общей оперативной памяти и 3 ГБ дискового пространства (для каждого проекта).Сеансы будут отключены после 30 минут бездействия, хотя они могут продолжаться до 24 часов.

Возможность обновления для повышения производительности: Да. Вы можете заплатить за подписку CoCalc, которая начинается с 14 долларов в месяц. Кроме того, вы можете установить образ CoCalc Docker на свой компьютер, что позволит вам бесплатно запустить частный многопользовательский сервер CoCalc.

Документация и техническая поддержка: CoCalc имеет обширную документацию. Поддержка доступна по электронной почте и через контактную форму, а проблемы с продуктами отслеживаются на GitHub.

Заключение: Наиболее веские причины для использования CoCalc — это совместная работа в реальном времени и функции управления версиями «путешествия во времени», а также функции управления курсом (если вы инструктор). Хотя интерфейс немного загроможден, существующие пользователи Jupyter могут относительно легко перейти на CoCalc. Однако у бесплатного плана есть некоторые важные ограничения (невозможность установить дополнительные пакеты или получить доступ к Интернету), а производительность бесплатного плана скромна.


6. Datalore

Datalore был создан JetBrains, той же компанией, которая делает PyCharm (популярную среду разработки Python). Начать работу так же просто, как создать учетную запись или войти в систему с учетной записью Google или JetBrains. Вы можете создать новую «книгу» Datalore или загрузить существующую записную книжку Jupyter. Книги Datalore хранятся в проприетарном формате, хотя он поддерживает импорт и экспорт стандартного формата файла .ipynb.

Поддерживаемые языки: Только Python 3.

Возможность установки пакетов: Сотни пакетов предустановлены, и вы можете установить дополнительные пакеты, используя pip или conda, или указав репозиторий GitHub пакета.

Сходство интерфейса: Когда вы открываете Datalore, интерфейс действительно напоминает Jupyter Notebook в том смысле, что есть код и ячейки Markdown, а также вывод под этими ячейками. Однако между интерфейсами Datalore и Jupyter есть некоторые важные различия:

  • Ячейки (которые Datalore называет «блоками») не нумеруются, потому что упорядочение ячеек принудительно.Другими словами, весь ваш код должен быть написан в том порядке, в котором вы в конечном итоге хотите, чтобы он выполнялся.
  • В записной книжке (которую Datalore называет «книгой») может быть несколько рабочих листов, как в Google Таблицах, что является удобным способом разбить длинные книги на логические разделы. Если вы создаете несколько листов в книге, все они будут использовать одну и ту же среду. Поскольку порядок ячеек важен в Datalore, ячейки на втором листе обрабатываются как следующие после ячеек на первом листе, третий лист идет после второго листа и т. Д.
  • Есть много других отличий интерфейса, которые описаны в разделе «Дополнительные функции».

Сочетания клавиш: Сочетания клавиш доступны для большинства действий в Datalore, но сочетания клавиш сильно отличаются от тех, что используются в Jupyter.

Отсутствующие элементы:

  • Datalore не использует ядро ​​IPython, поэтому магические функции и команды оболочки IPython недоступны. (Однако дополнительный доступ к ядру IPython является запланированной функцией.)
  • Поскольку строка меню Datalore очень проста и в ней нет панели инструментов, многие действия можно выполнять только с помощью сочетаний клавиш.
  • Вы не можете загрузить свою книгу в других полезных форматах, таких как сценарий Python, веб-страница HTML или файл Markdown.
  • Datalore не поддерживает все обычно поддерживаемые функции Markdown в своих ячейках Markdown. (Однако улучшенная поддержка Markdown является запланированной функцией.)
  • Datalore не поддерживает интерактивные виджеты.
  • Datalore не включает поддержку нескольких курсоров.

Добавленные функции:

  • Ячейки автоматически запускаются по мере их записи, что Datalore называет «живыми вычислениями». Это на самом деле упрощает отладку кода по мере его написания, поскольку вы можете сразу увидеть результаты своего кода. (Вычисления в реальном времени можно отключить, и в этом случае вы можете вручную запустить выполнение ячеек.)
  • Поскольку ячейки всегда будут работать в том порядке, в котором они расположены, Datalore может отслеживать зависимости ячеек.Это означает, что при редактировании данной ячейки Datalore определит, какие ячейки ниже нее потенциально затронуты, и немедленно повторно запустит эти ячейки (при условии, что живые вычисления включены). Если редактирование вызывает ошибку в зависимой ячейке, эти ошибки будут немедленно помечены.
  • Datalore позволяет отображать входы и выходы ячеек последовательно (как в Jupyter) или в «разделенном виде», и в этом случае входы и выходы находятся на двух отдельных панелях. При использовании последовательного просмотра Datalore также позволяет легко скрыть все входные данные или скрыть все выходы.
  • Datalore включает в себя больше «интеллекта», чем Jupyter, при завершении кода.
  • Когда вы пишете код, Datalore предоставляет контекстно-зависимые предложения (называемые «намерениями»), какие действия вы можете предпринять. Например, после ввода имени DataFrame намерения могут включать в себя «столбцы отбрасываемой строки», «гистограмму» и «разделение теста обучения». Когда вы щелкаете намерение, Datalore фактически генерирует для вас код, который может быть полезным способом изучить код, стоящий за определенными задачами.
  • Datalore включает хорошо продуманную систему контроля версий. Он часто сохраняет текущее состояние вашей книги, и вы можете быстро просматривать различия между текущей версией и любыми предыдущими версиями. Вы также можете добавить сообщение при сохранении книги, а затем отфильтровать список версий, чтобы включить только те версии с сообщением.
  • Datalore предоставляет вам доступ к библиотеке построения графиков под названием datalore.plot, которая очень похожа на R ggplot2, хотя вы можете использовать ее только внутри Datalore.

Простота работы с наборами данных: Вы можете загрузить набор данных в свою книгу с локального компьютера или URL-адреса, но доступ к нему возможен только из этой конкретной книги. Если вы работаете с одним и тем же набором данных во многих книгах, это может вызвать серьезное раздражение. (Однако совместное использование наборов данных между книгами является запланированной функцией.)

Доступ в Интернет: Да.

Возможность работать в частном порядке: Да.

Возможность публиковать: No.

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

Производительность бесплатного плана: У вас будет доступ к 2-ядерному процессору с 4 ГБ ОЗУ и 10 ГБ дискового пространства.Сеансы будут отключены после 60 минут бездействия, хотя нет конкретного ограничения на продолжительность отдельных сеансов. Вы можете пользоваться услугой до 120 часов в месяц.

Возможность обновления для повышения производительности: Нет, хотя скоро появится платный план, предлагающий больше дискового пространства и более мощный процессор (или графический процессор).

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

Заключение: Datalore больше не является адаптацией Jupyter Notebook, а больше похож на новое изобретение Notebook. Он включает в себя инновационный набор функций, включая вычисления в реальном времени, отслеживание зависимостей, совместную работу в реальном времени и встроенный контроль версий. Однако существующим пользователям Jupyter может быть непросто перейти на Datalore, тем более что упорядочение ячеек принудительно и все сочетания клавиш сильно отличаются.Кроме того, в настоящее время Datalore имеет некоторые заметные ограничения, а именно: книги нельзя делиться общедоступными, а загруженные наборы данных не могут использоваться другими книгами.


Как выбрать подходящую услугу

Из шести представленных вариантов нет ни одного явного «победителя». Вместо этого правильный выбор будет зависеть от ваших приоритетов. Ниже приведены мои предложения о том, что вам следует выбрать, исходя из ваших конкретных потребностей. (Примечание: вы также можете просмотреть это как сравнительную таблицу.)

Вы используете язык, отличный от Python: Binder и CoCalc поддерживают множество языков. Azure поддерживает Python, R и F #, ядра поддерживают Python и R, Colab поддерживает Python и Swift, а Datalore поддерживает только Python.

Вам необходимо использовать Python 2: Binder, Colab, Azure и CoCalc поддерживают Python 2 и 3, тогда как ядра и Datalore поддерживают только Python 3.

Вы работаете с нестандартными пакетами: Binder и Azure позволяют указать точные требования к пакету с помощью файла конфигурации.CoCalc и Datalore позволяют устанавливать дополнительные пакеты, которые будут сохраняться во время сеансов, хотя это недоступно в бесплатном плане CoCalc. Ядра и Colab также позволяют вам устанавливать дополнительные пакеты, хотя они не сохраняются между сеансами. Ядра и CoCalc принимают запросы пользователей о том, какие пакеты должны быть включены в их установку по умолчанию.

Вам нравится существующий интерфейс Jupyter Notebook: Binder и Azure используют собственный интерфейс Jupyter Notebook, а CoCalc использует почти идентичный интерфейс.Ядра визуально отличаются от Jupyter, но работают так же, тогда как Colab визуально похож на Jupyter, но не работает так же. Datalore — самый дальний из существующих Jupyter Notebook.

Вы интенсивно используете сочетания клавиш: Binder, ядра и Azure используют те же сочетания клавиш, что и Jupyter, а CoCalc использует почти все те же сочетания клавиш. Datalore использует совершенно разные сочетания клавиш, а Colab использует громоздкие многоступенчатые сочетания клавиш (хотя их можно настроить).

Вы предпочитаете интерфейс «укажи и щелкни»: Binder, Azure и CoCalc позволяют выполнять все действия путем наведения указателя и щелчка, тогда как ядра, Colab и Datalore требуют использования сочетаний клавиш для определенных действий.

Вам нужна интегрированная система контроля версий: CoCalc и Datalore предоставляют лучшие интерфейсы для контроля версий. Система контроля версий Kaggle более ограничена, а система Colab еще более ограничена. Binder и Azure не предоставляют систему контроля версий.

Вы работаете с большим количеством наборов данных: ядра без проблем работают с Kaggle Datasets, полнофункциональным (и бесплатным) сервисом для размещения наборов данных размером до 20 ГБ каждый. CoCalc предлагает 3 ГБ дискового пространства для каждого проекта, и к любому загружаемому вами набору данных можно получить доступ из любой записной книжки в вашем проекте. Azure имеет аналогичные функции, за исключением того, что предлагает 1 ГБ дискового пространства для каждого проекта. Datalore предлагает 10 ГБ общего дискового пространства, хотя каждый загружаемый набор данных должен быть связан с определенной книгой.Colab будет отбрасывать все загруженные вами наборы данных по окончании сеанса, если вы не свяжете Colab со своим Google Диском. Binder лучше всего подходит для небольших наборов данных, которые хранятся в вашем репозитории Git или находятся по общедоступному URL-адресу.

Ваш проект уже размещен на GitHub: Binder может запускать ваши записные книжки прямо из GitHub, Azure позволит вам импортировать весь репозиторий GitHub, а Colab может импортировать одну записную книжку из GitHub. Ядра, CoCalc и Datalore не предоставляют аналогичных функций.

Ваша работа должна быть конфиденциальной: Все варианты, кроме поддержки Binder, работают конфиденциально.

Вам необходимо хранить свои данные локально: Ни один из этих облачных сервисов не позволяет хранить ваши данные локально. Однако вы можете настроить Binder или CoCalc на своем собственном сервере, поскольку BinderHub и образ CoCalc Docker имеют открытый исходный код, что позволит вам хранить данные локально.

Вы хотите опубликовать свою работу: Binder создает минимальные трудности при совместном использовании, поскольку люди могут просматривать и запускать вашу записную книжку, не создавая учетной записи.Ядра, Colab, Azure и CoCalc позволяют вам делиться URL-адресом для доступа только для чтения, при этом от пользователей требуется создание учетной записи, если они хотят запустить ваш блокнот. Ядра и Azure делают совместный доступ еще проще, предоставляя вам страницу общедоступного профиля. Datalore не разрешает публичный обмен.

Вам необходимо сотрудничать с другими: CoCalc и Datalore поддерживают совместную работу в реальном времени. Colab поддерживает совместную работу над одним и тем же документом, но не в режиме реального времени, и вы не используете одну и ту же среду.Ядра поддерживают форму сотрудничества, в которой вы делитесь историей версий. Binder и Azure не включают в себя никаких функций совместной работы, хотя с Binder это может легко происходить через обычный рабочий процесс запроса на вытягивание GitHub.

Вам нужна высокопроизводительная среда: Kernels обеспечивает самую мощную среду (4-ядерный ЦП и 17 ГБ ОЗУ), за ними следуют Datalore (2-ядерный ЦП и 4 ГБ ОЗУ), Azure (4 ГБ ОЗУ), Binder ( до 2 ГБ ОЗУ) и CoCalc (1-ядерный процессор и 1 ГБ ОЗУ).Colab не предоставляет спецификации для своей среды.

Вам нужен доступ к графическому процессору: ядра и Colab предоставляют бесплатный доступ к графическому процессору. Доступ к графическому процессору доступен платным клиентам Azure и (скоро) Datalore. Доступ к графическому процессору недоступен через Binder или CoCalc.

Вы предпочитаете использовать некоммерческий инструмент: Binder — единственный вариант, которым управляет некоммерческая организация.


Подобные услуги, которые не проверялись

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

  • Я не включил ни одной службы, которая предоставляет доступ только к JupyterLab, например Notebooks AI, Kyso и CyVerse.(Обратите внимание, что Binder, Azure и CoCalc позволяют использовать JupyterLab вместо Jupyter Notebook, если хотите.)
  • Я не включил IBM Watson Studio Cloud, потому что процесс начала работы громоздкий, интерфейс слишком сложен, бесплатный план имеет множество ограничений, а во время тестирования было много сообщений об ошибках.
  • Я не включил Code Ocean, потому что бесплатный план сильно ограничен без академического адреса электронной почты.
  • Я не включил ZEPL, потому что он не позволяет экспортировать записные книжки с использованием стандарта.формат ipynb.
  • Я не включил никаких платных сервисов, таких как Saturn Cloud, Crestle.ai и Paperspace.

Мой процесс проверки фактов

Эта статья — результат более 50 часов исследований, тестирования и написания. Кроме того, в марте 2019 года я поделился черновиками этой статьи с соответствующими командами из Binder, Kaggle, Google, Microsoft, CoCalc и Datalore. Я получил подробные отзывы от всех шести компаний / организаций (спасибо!), Которые я включил в статью перед публикацией.

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

Обновлено 17.05.2019: CoCalc теперь поддерживает интерактивные виджеты. Уточнены ограничения функциональности совместной работы Google Colab.

Введение — Настоящий Python