从 KernelManager 获取原始 Python 个对象

Get raw Python objects from KernelManager

当 Jupyter 内核中的 运行 代码时,可以从各自的通道获取 iopubshell 消息。是否也可以从内核中提取原始 python 对象?

针对下面的代码说

code = """a = {'a': 1}
b = {'b': 2}
"""


class Shell:
    def __init__(self):
        km = KernelManager()
        km.start_kernel()

        client = km.client()
        client.start_channels()

        client.execute(code)

        print(client.get_iopub_msg())
        print(client.get_shell_msg())

我想检索实际对象 ab 以便它们可以在当前 python 应用程序中使用。这可能吗?

我找到了解决方法,使用 dill 将整个会话转储到内核中

dill.dump_session()

然后在主应用中加载

dill.load_session()