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

Я могу подключить два сеанса ipython console к одному ядру:

$ ipython console
In [1]: %connect_info  
{
   ... Content of JSON with info for connecting ...
}

Paste the above JSON into a file, and connect with:
    $> ipython <app> --existing <file>
or, if you are local, you can connect with just:
    $> ipython <app> --existing kernel-43204.json
or even just:
    $> ipython <app> --existing
    if this is the most recent IPython session you have started.

И, соответственно, я снова могу заменить <app> на консоль

$ ipython console --existing kernel-43204.json

Тем не менее, я хочу поделиться своим ядром с ноутбуком ipython, чтобы я мог визуализировать свои данные. Я пробовал и терпел неудачу:

$ ipython notebook --existing kernel-43204.json
[C 13:35:01.025 NotebookApp] Unrecognized flag: '--existing'

Любое предложение, как я могу работать и переключаться между ipython console и ipython notebook?

Ответ 1

Для этого нет интерфейса пользователя или API для этого, есть предположение о простоте кода, что ноутбук является тем, кто владеет и запускает ядро. Вам нужно будет написать собственный подкласс KernelManager и настроить IPython для его использования (+ написать немного кода пользовательского интерфейса, если вы хотите, чтобы он был простым в использовании), чтобы вы могли выбрать уже существующее ядро.

Ответ 2

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

https://github.com/ebanner/extipy

Это хакерское решение в лучшем случае.

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

Ответ 3

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

  1. Начните свой блокнот. Теперь у вас есть работающее ядро.
  2. В ячейке кода выполните магическую команду %qtconsole

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

Кстати, qtconsole - очень умная консоль. Это даже лучше, чем терминальный, особенно если вы пользователь Windows.