Devdays Осень 2017/jupyter kernel — различия между версиями
(не показано 19 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
− | Jupyter kernel for java lang | + | Работающий Jupyter kernel for java lang |
− | Технологии: | + | Технологии: Python, Java |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
[https://github.com/aleksZubakov/java-jupyter-kernel Ссылка на репозиторий] | [https://github.com/aleksZubakov/java-jupyter-kernel Ссылка на репозиторий] | ||
+ | |||
+ | [https://youtu.be/aD98dOELlKU Видео] | ||
+ | |||
+ | [https://drive.google.com/open?id=1He_d6cpaVcsnFKu3QlkPUR-4BQF5jk9n Презентация] | ||
+ | |||
+ | == Состав команды == | ||
+ | * Антон Егоров — автоматическая сборка и установка, история команд /history. | ||
+ | * Зубаков Алексей — руководитель проекта, Java составляющая ядра(обертка JShell на Java). | ||
+ | * Калинин Владислав — Java и Python составляющие ядра(Kernel на Python, java2py bridge, вывод переменных/методов: /vars, /methods). | ||
== Features == | == Features == | ||
− | + | * Исполнение java кода | |
− | + | * История команд | |
− | + | * autocomplete(по возможности) | |
+ | |||
+ | |||
+ | == Функциональность == | ||
+ | * Запланировано и сделано: | ||
+ | * минимальный рабочий java kernel для jupyter без дополнительных фичей | ||
+ | * фичи jshell внутри jupyter notebookl (/vars, /methods, etc.) | ||
+ | * автоматическая установка и сборка | ||
+ | * вывод ошибок | ||
+ | * автокомплит | ||
+ | |||
+ | * Запланировано и не сделано: | ||
+ | * связь с jshell напрямую из python | ||
+ | |||
+ | * Не запланировани и сделано: | ||
+ | * установка связи с jshell через java classes | ||
+ | * простейший парсинг java сниппетов | ||
+ | |||
+ | |||
+ | == Как запустить== | ||
+ | Инструкция есть в [https://github.com/aleksZubakov/java-jupyter-kernel репозитории] | ||
+ | |||
+ | |||
+ | В вашей системе уже должен быть установлен Jupyter и JDK 9. | ||
+ | |||
+ | Запустите установочный скрипт | ||
+ | |||
+ | <code>sudo ./setup.py install</code> | ||
+ | |||
+ | Лучше дать ему привилегии. Скрипт попытается вызвать команду <code>jupyter kernelspec list</code>, и если хоть одно ядро уже подключено к Jupyter-у, то скрипт узнает путь, куда нужно скопировать необходимые для запуска Java-ядра файлы. Если это сделать не получится, то будет предложено вручную ввести путь к папке, в которой Jupyter узнаёт информацию о ядрах. Например, это может быть путь <em>/usr/local/share/jupyter/kernels</em>. Также скрипт должен проверить наличие и при необходимости установить библиотеку py4j для Python. Если установка прошла успешно, то запустить Jupyter с Java-ядром можно командой | ||
+ | |||
+ | <code>jupyter console --kernel java</code> | ||
+ | |||
+ | |||
+ | В числе файлов в репозитории есть файл <em>java_src/target/jserver.jar</em>, включающий в себя Java-составляющую ядра. Пересобрать его, при необходимости, можно выполнив команду | ||
+ | |||
+ | <code>mvn clean install</code> | ||
+ | |||
+ | в папке java_src. | ||
== Buglist == | == Buglist == | ||
− | * Не | + | * Не ругается на ошибку вида System.out.println(10 |
− | * | + | * Не ругается на незакрытый многострочный комментарий /* |
− | * | + | * Графики выводятся не в самом ноутбуке, а в отдельном окне |
− | + | * Автокомплит не работает внутри вложенных конструкций | |
− | + | * Не всегда корректно подсвечивается синтаксис java в браузере | |
+ | * Не убивается процесс с java при экстренном завершении |
Текущая версия на 14:29, 7 ноября 2017
Описание
Работающий Jupyter kernel for java lang
Технологии: Python, Java
Состав команды
- Антон Егоров — автоматическая сборка и установка, история команд /history.
- Зубаков Алексей — руководитель проекта, Java составляющая ядра(обертка JShell на Java).
- Калинин Владислав — Java и Python составляющие ядра(Kernel на Python, java2py bridge, вывод переменных/методов: /vars, /methods).
Features
- Исполнение java кода
- История команд
- autocomplete(по возможности)
Функциональность
- Запланировано и сделано:
* минимальный рабочий java kernel для jupyter без дополнительных фичей * фичи jshell внутри jupyter notebookl (/vars, /methods, etc.) * автоматическая установка и сборка * вывод ошибок * автокомплит
- Запланировано и не сделано:
* связь с jshell напрямую из python
- Не запланировани и сделано:
* установка связи с jshell через java classes * простейший парсинг java сниппетов
Как запустить
Инструкция есть в репозитории
В вашей системе уже должен быть установлен Jupyter и JDK 9.
Запустите установочный скрипт
sudo ./setup.py install
Лучше дать ему привилегии. Скрипт попытается вызвать команду jupyter kernelspec list
, и если хоть одно ядро уже подключено к Jupyter-у, то скрипт узнает путь, куда нужно скопировать необходимые для запуска Java-ядра файлы. Если это сделать не получится, то будет предложено вручную ввести путь к папке, в которой Jupyter узнаёт информацию о ядрах. Например, это может быть путь /usr/local/share/jupyter/kernels. Также скрипт должен проверить наличие и при необходимости установить библиотеку py4j для Python. Если установка прошла успешно, то запустить Jupyter с Java-ядром можно командой
jupyter console --kernel java
В числе файлов в репозитории есть файл java_src/target/jserver.jar, включающий в себя Java-составляющую ядра. Пересобрать его, при необходимости, можно выполнив команду
mvn clean install
в папке java_src.
Buglist
- Не ругается на ошибку вида System.out.println(10
- Не ругается на незакрытый многострочный комментарий /*
- Графики выводятся не в самом ноутбуке, а в отдельном окне
- Автокомплит не работает внутри вложенных конструкций
- Не всегда корректно подсвечивается синтаксис java в браузере
- Не убивается процесс с java при экстренном завершении