重置ipython内核

时间:2014-10-28 08:07:10

标签: python kernel ipython reload

我想知道是否有办法重新启动ipython内核而不关闭它,就像笔记本中存在的内核重启功能一样。我试过%reset,但似乎没有清除导入。

7 个答案:

答案 0 :(得分:9)

即使%reset清除命名空间和导入的缓存(如在笔记本中),也可以使用python3.4中的importlib.reload显式重新加载以前导入的模块, python3.0-3.3中的imp.reload(如果需要,可以在第二步中重置内核)。

答案 1 :(得分:3)

我可以重新启动内核,但某些控制台会话需要更长时间才能重新连接。 Notebook会立即检测到内核重启。

ipykernel.ipkernel.IPythonKernel类有一个do_shutdown方法,其restart参数默认为False

获取对ipykernel.kernelapp.IPKernelApp的引用,该引用具有对内核的引用,并通过传递do_shutdown来调用内核的True

import IPython
app = IPython.Application.instance()
app.kernel.do_shutdown(True)  

我是如何测试的?

$ #start notebook
$ jupyter notebook

$ #connect to existing kernel
$ jupyter console --existing

答案 2 :(得分:2)

我个人使用JupyterLab的每个ipynb文件的顶部添加这两行:

load_ext autoreload
%autoreload 2

它使您可以更新相邻xxx.py文件中的代码,而不必重新启动内核,这对我来说是一个巨大的痛苦。

答案 3 :(得分:1)

在qt控制台中,您可以点击ctrl-

答案 4 :(得分:1)

如果已将Spyder与anaconda一起安装,则打开Spyder窗口。

然后单击控制台(菜单栏)->重新启动控制台。

,或者您可以使用CTRL +。这是重新启动控制台的快捷键。

答案 5 :(得分:0)

IPython Qt-console具有重置内核功能。如果你使用的是IPython Qt,你可以使用它。 IMO它比从shell中使用更好。

enter image description here

答案 6 :(得分:0)

在3.7 Anaconda中,只需转到内核,然后选择重新启动即可。

enter image description here