我想知道是否有办法重新启动ipython内核而不关闭它,就像笔记本中存在的内核重启功能一样。我试过%reset
,但似乎没有清除导入。
答案 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)
答案 6 :(得分:0)