这个错误通常是由于在使用IPython时,将InteractiveShellEmbed对象与Jupyter Notebook的kernel对象混淆所导致的。一个可能的解决方法是使用子进程来启动kernel,而不是在InteractiveShellEmbed对象内执行。具体来说,可以使用以下代码来创建InteractiveShellEmbed对象:
from IPython.terminal.embed import InteractiveShellEmbed
from IPython.kernel.zmq.kernelapp import IPKernelApp
def embed():
kernel = IPKernelApp.instance()
kernel.initialize([])
shell = InteractiveShellEmbed.instance(kernel=kernel)
shell()
embed()
这将创建一个InteractiveShellEmbed对象并使用一个IPKernelApp子进程来启动kernel。用户可以在交互式shell中输入代码,并在Jupyter Notebook中得到相应的输出。