Подтвердить что ты не робот

Интерактивные ноутбуки Ipython на Heroku

В настоящее время я пытаюсь сделать учебники python и размещать их с помощью ноутбука ipython на сайте Heroku. Проблема в том, что ноутбуки ipython статичны при загрузке. Я пытаюсь сделать так, чтобы пользователь мог использовать ноутбук в интерактивном режиме (например, выходные данные печати). Я также не хочу, чтобы выходные данные своих ноутбуков сохранялись постоянно на веб-сайте Heroku.

4b9b3361

Ответ 1

Из того, что я понимаю, у вас есть 2 вопроса:

  • интерактивные ноутбуки
  • "только для чтения" ноутбуков (не сохраняйте изменения)

Для проблемы 1 вам нужно использовать сервер jupyter (новое имя IPython для ноутбуков). Показывать только ноутбук недостаточно, потому что вам нужен сервер, чтобы "понять" и выполнить изменения. См.: http://jupyter-notebook.readthedocs.io/en/latest/public_server.html

Я не знаком с Heroku, после googling 2s я нашел это: https://github.com/pl31/heroku-jupyter, который смог развернуть рабочий сервер Jupyter на demo heroku.


По моему мнению, проблема 2 сложнее решить.

Когда "ученики" изменят ноутбук, модификации будут применены к файлу записной книжки (.ipnb), чтобы изменения были постоянными... Этого вы не хотите.

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

Кроме того, он задает несколько проблем взаимодействия с пользователем, например, что, если я потеряю подключение к Интернету? Смогу ли я потерять свою работу? Зачем? Это то, что я действительно хочу в качестве ученика?

Для этого лучшим решением является предоставление пользователю доступа к ноутбуку /workplce, где она может сохранить ее прогрессию, но это больше, чем просто развернуть сервер jupyter. Например, см. Databricks.com(первый (только) тот, который приходит на ум, не обязательно лучший).

(Как замечание, кажется, что многопользовательский режим уже реализован: https://jupyterhub.readthedocs.io/en/latest/)


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