Вот как далеко я продвинулся:
Во-первых, с IPython 4.0 многое изменилось, и поэтому любые из существующих примеров недопустимы больше.Кроме того, документации не существует.
Как создать экземпляр ядра IPython в скрипте Python
Вы можете сделать что-то вроде этого:
from jupyter_client import KernelManager
def main():
km = KernelManager()
km.start_kernel()
cf = km.connection_file
print("To connect a client: jupyter console --existing ", cf)
kc = km.client()
kc.start_channels()
try:
kc.wait_for_ready()
except RuntimeError:
kc.stop_channels()
km.shutdown_kernel()
raise
# executes Python statement to create global variable named d
# and assign it value 32
kc.execute('d=32')
input("Press Enter to continue...")
if __name__ == '__main__':
main()
Как подключиться к ядру IPython из консоли Jupyter
Просто выполните команду, напечатанную приведенным выше кодом:
jupyter console --existing <full json filename>
Затем, если вы введете d в консоли Jupyter, выувидит значение 32.
Как подключиться к ядру IPython из Jupyter Notebook
Это все еще сложно.Основная проблема заключается в том, что ноутбук Jupyter настаивает на собственном ядре и не имеет возможности подключиться к существующему ядру.Единственный выход - создать свой собственный класс менеджера ядра, примером которого является здесь , но, похоже, он не работает с более новым IPython.Затем вы вызываете ноутбук, указав использовать класс менеджера ядра:
jupyter notebook \
--NotebookApp.kernel_manager_class=extipy.ExternalIPythonKernelManager \
--Session.key='b""'
Эта часть все еще не работает.