Obecnie próbuję tworzyć samouczki Pythona i hostować je przy użyciu notatnika na stronie Heroku. Problem polega na tym, że notesy ipython są statyczne po załadowaniu. Staram się, aby użytkownik mógł interaktywnie korzystać z notebooka (na przykład wydruków). Nie chcę również, aby dane z ich notebooków były zapisywane na stałe na stronie Heroku.Interaktywne notebooki Ipython na Heroku
Odpowiedz
Z tego co rozumiem, masz 2 problemy do czynienia z:
- interaktywnych notebooków
- "tylko do odczytu" notebooki (nie zapisać zmiany)
Dla numer 1, musisz użyć serwera jupyter (nowy serwer IPython dla notebooków). Tylko pokazanie notatnika nie wystarczy, ponieważ potrzebujesz serwera, aby "zrozumieć" i wykonać modyfikacje. Zobacz: http://jupyter-notebook.readthedocs.io/en/latest/public_server.html
Nie jestem zaznajomiony z Heroku, po przeszukaniu 2s znalazłem to: https://github.com/pl31/heroku-jupyter, który był w stanie wdrożyć działający serwer Jupyter na maszynie heroku demo.
Według mnie, problem 2 jest trudniejszy do rozwiązania.
Gdy "uczniowie" zmienią komputer, modyfikacje zostaną zastosowane do pliku notatnika (.ipnb), więc modyfikacje będą trwałe ... Nie jest to pożądane.
Można wypróbować kilka sztuczek przy użyciu uprawnień do plików, aby zapobiec jądro, aby zapisać plik, ale myślę, że to tylko awaria jądro ...
Ponadto prosi kilka problemów interakcji użytkownika, na przykład co zrobić, jeśli Tracę połączenie z Internetem? Czy stracę pracę? Czemu ? Czy tego właśnie chcę jako uczeń?
W tym celu najlepszym rozwiązaniem jest zapewnienie użytkownikowi dostępu do notebooka/pracowni, w którym można zapisać jej postęp, ale jest to więcej pracy niż tylko wdrożenie serwera jupyter. Jako przykład, zobacz databricks.com (pierwszy (jedyny), który przychodzi ci na myśl, niekoniecznie najlepszy).
(Nawiasem mówiąc, wydaje się, że tryb wielu użytkowników jest już wdrażane: https://jupyterhub.readthedocs.io/en/latest/)
chciałbym dodać jeszcze jedno spostrzeżenie o bezpieczeństwo serwera. Umożliwienie obcemu dostępu do serwera z osadzoną powłoką brzmi jak zły pomysł, jeśli nie jesteś przygotowany na konsekwencje. Proponuję, abyś zobaczył, jak możesz ustawić sesję jupytera każdego użytkownika w "więzieniu"/kontenerze, wszystko, co działa w Heroku.
- 1. Jak przekonwertować notebooki Jupyter/IPython na LaTex?
- 2. Mathematica - oddzielne notebooki
- 3. IPython notebook z Optirunem
- 4. notebooki Konfigurowanie Jupyter dla inline Retina matplotlib figures
- 5. Osadzanie F # interaktywne
- 6. Wideo interaktywne html5
- 7. Czy można przyspieszyć interaktywne wątki IPython Notebook, nie generując nowych danych za każdym razem?
- 8. przy użyciu programu rpy2 z notebookami IPython?
- 9. Automagicznie generowania notebooki z odcinków zwiniętych
- 10. "Tabele Zebry" w Notatniku IPython?
- 11. ScatterViewItems zawierające elementy interaktywne powierzchni
- 12. Interaktywne plany pięter w HTML5
- 13. Interaktywne podpowiedzi w matplotlib plot
- 14. Interaktywne mapy do aplikacji internetowej
- 15. Utwórz wyskakujące okienko dialogowe interaktywne
- 16. Interaktywne wykresy w Tcl/Tk
- 17. Zmień IPython 3 dla jądra Python 3 na python2 dla klastra też
- 18. Akceptowanie Bitcoinów na Heroku
- 19. Zainstaluj devDependencies na Heroku
- 20. Zainstaluj freetds na Heroku
- 21. CSV na Heroku Cedar
- 22. Używanie Prawn na Heroku
- 23. WebSocket na Heroku ERR_CONNECTION_REFUSED
- 24. Uruchamianie Phantomjs na Heroku
- 25. Przyspieszenie wdrażania na Heroku
- 26. Docsplit na Heroku
- 27. Uruchamianie Scipy na Heroku
- 28. Redis na Heroku Sharding
- 29. Zainstaluj FFMPEG na Heroku
- 30. Interaktywne działki na lokalnym .html przez .rmd lub Shiny