Использование ноутбука Jupyter со встроенным интерпретатором Python - PullRequest
0 голосов
/ 13 марта 2019

Мне нужно использовать ноутбук Jupyter с интерпретатором Python, который встроен в программу c ++ с использованием pybind11, чтобы получить доступ к коду C ++, предоставляемому через встроенные модули pybind11. Я совершенно новичок в Jupyter и удивляюсь, как мне это делать.

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

$ ./my-program python
>>>

Я подумал, что это будет так же просто, как изменить «argv» в стандартном файле Jupyter python kernel.json с «python» на «./my-program python». Но теперь я считаю, что это ужасно ошибочная идея.

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

import sys
from IPython.terminal.ipapp import launch_new_instance
from IPython.lib import passwd
from socket import gethostname
import warnings
warnings.filterwarnings("ignore", module = "zmq.*")
sys.argv.append("notebook")
sys.argv.append("--NotebookApp.ip=" + gethostname())
sys.argv.append("--NotebookApp.open_browser=True")
launch_new_instance()

Я могу получить доступ к встроенным модулям через встроенный Ipython, используя следующую команду:

>>> from IPython import embed
>>> embed()

Но я не уверен, что это актуально, и мне нужно, чтобы он работал в веб-клиенте Jupyter.

Нужно ли писать ядро ​​для этого? Я бы действительно не хотел писать ядро, если есть другой способ сделать это. Дай мне знать. Спасибо!

...