wat*_*nic 47 python ipython ipython-notebook
我想以编程方式在IPython Notebook早期退出单元格.exit(0)然而,杀死了内核.
什么是正确的方法来做到这一点?我不想拆分单元格或手动停止执行.
Sam*_*zzo 28
安静地停止当前和后续单元格:
class StopExecution(Exception):
    def _render_traceback_(self):
        pass
raise StopExecution
Pau*_*aul 24
略微更"适当"的选择:
除了最差的try/except块之外,这将使你除外.
raise KeyboardInterrupt
你的一个更干净的版本:
assert(False)
或者干脆:
raise
如果你想节省一些按键.
Dar*_*aut 15
我在这里重新发布我的答案,因为解决方案也适用于你的问题.它会...
只需从下面的代码中导入"退出"到您的jupyter笔记本(IPython笔记本)中,并调用'exit()'即可.它会退出并让你知道......
 An exception has occurred, use %tb to see the full traceback.
 IpyExit 
"""
# ipython_exit.py
Allows exit() to work if script is invoked with IPython without
raising NameError Exception. Keeps kernel alive.
Use: import variable 'exit' in target script with
     'from ipython_exit import exit'    
"""
import sys
from io import StringIO
from IPython import get_ipython
class IpyExit(SystemExit):
    """Exit Exception for IPython.
    Exception temporarily redirects stderr to buffer.
    """
    def __init__(self):
        # print("exiting")  # optionally print some message to stdout, too
        # ... or do other stuff before exit
        sys.stderr = StringIO()
    def __del__(self):
        sys.stderr.close()
        sys.stderr = sys.__stderr__  # restore from backup
def ipy_exit():
    raise IpyExit
if get_ipython():    # ...run with IPython
    exit = ipy_exit  # rebind to custom exit
else:
    exit = exit      # just make exit importable
| 归档时间: | 
 | 
| 查看次数: | 17845 次 | 
| 最近记录: |