2015-10-31 4 views
11

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

ответ

1

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

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

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

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


Согласно мне, вопрос 2 сложнее решить.

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

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

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

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

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


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