Как запустить ядро ​​IPython и подключиться с помощью сокетов ZMQ?

python c++ qt ipython zeromq

888 просмотра

1 ответ

Я работаю над внешним интерфейсом IPython в C ++ (Qt).

Мне удалось внедрить Python в мое приложение, получить графики и показать их в моем графическом интерфейсе. Теперь я хочу запустить ядро ​​IPython и подключиться к нему через сокеты ZMQ.

Я нашел описание протокола связи с ядрами IPython. Однако, это не говорит , где - нибудь , какие порты для подключения. Поэтому неплохо иметь протокол связи, но совершенно бесполезно, если я не знаю, какие порты использовать.

Документация упоминает «спецификации ядра» и говорит мне использовать jupyter kernelspec listкоманду. Это действительно показывает мне один каталог, который содержит только два файла: logo-32x32.png и logo-64x64.png ...

Как мне найти порты, к которым мне нужно подключиться, чтобы общаться с моими ядрами IPython?

Я запускаю свое ядро ​​IPython, выполняя следующий код Python из моего приложения C ++ Qt:

import IPython
IPython.start_kernel(argv=[])
Автор: tcpie Источник Размещён: 08.11.2019 11:30

Ответы (1)


2 плюса

Оказывается, Томас К был прав. Правильный подход для запуска ядра IPython / Jupyter в другом процессе: (на примере python3)

import jupyter_client
kernel_manager, kernel_client = jupyter_client.start_new_kernel(kernel_name='python3')

Когда я впервые попробовал это, я получил ошибку разрешения. Это было исправлено установкой спецификации ядра python3 (очевидно, Jupyter не делает это автоматически ...):

python3 -m ipykernel install --user

И тогда вы можете получить порты по

print(kernel_manager.get_connection_info())

Должно быть возможно использовать эти порты для подключения к ядру через zero-mq. Тем не менее, kernel_clientнекоторые методы взаимодействуют с ядром, поэтому такой подход может быть проще использовать ...

Автор: tcpie Размещён: 21.08.2016 09:37
Вопросы из категории :
32x32