我正在使用WinPython的Spyder。当我使用命令
exit()
创建一个新脚本并在其中运行时,此命令会终止内核:
似乎内核意外死亡。使用“重新启动内核”以继续使用此控制台。
在这个运行时环境中,停止脚本的正确方法是什么?
更新:至少在Spyder 5.0.3中,调用sys.exit()
不再终止内核!(感谢@bhushan提供的信息!)
对于早期版本,以下仍然有效:
要退出脚本,可以:
使用raise SystemExit(0)
(无回溯)引发一个静默异常
或者像raise Exception('my personal exit message')
这样抛出一个自定义异常
或将代码封装到一个函数(例如main
)中,并在内部使用return
。
如果想要保留调用exit()
,可以:
切换到“在新的专用Python解释器中执行”
在IPython控制台上注册一个退出处理程序:
def exit_handler(): raise Exception("exit()"), get_ipython().ask_exit = exit_handler
def f(): raise Exception("Found exit()")
import sys
sys.exit()
如果要在不警告的情况下中断Spyder的执行,可以调用
raise SystemExit(0)
Ctrl+c
来终止任何进程。