jupyter_client KernelClient 在启动通道时给出 "ChannelABC() takes no arguments"

jupyter_client KernelClient gives "ChannelABC() takes no arguments" when starting channels

我正在尝试使用 jupyter_client 包通过 python shell 与 运行ning ipython 内核进行交互。

我有内核 运行ning,连接文件(例如“kernel-7772.json”)位于 %APPDATA%\jupyter\runtime.

我运行的代码如下:

import jupyter_client
cf = jupyter_client.find_connection_file('7772')
km = jupyter_client.KernelClient(connection_file = cf)
km.load_connection_file()
km.start_channels()

然后我得到错误 TypeError: ChannelABC() takes no arguments

(完整回溯:

File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\client.py", line 101 in start_channels
File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\client.py", line 143 in shell_channel
    socket, self.session, self.ioloop

)

我也尝试过使用 BlockingKernelClient,它完全没有问题。但是,我更愿意使用非阻塞 KernelClient。难道我做错了什么? KernelClient 中有错误吗?

我的 jupyter_client 版本是 5.3.1,我正在使用 python 3.7.3。

KernelClient 是一个摘要 class。解决方案是改用AsyncKernelClient

import jupyter_client
cf = jupyter_client.find_connection_file('7772')
km = jupyter_client.AsyncKernelClient(connection_file = cf)
km.load_connection_file()
km.start_channels()