我正在使用来自IPython(控制台)的embed()
来与我的脚本进行交互。每当我按 CTRL + D 时,它将退出交互模式,并在embed()
电话后继续进行下一次评奖。
如何中止完整的python脚本,避免它在交互式python中embed()
之后进入更多命令?
我尝试过:
CTRL + C :仅取消我在IPython中的当前命令
CTRL + D :离开IPython并继续执行我脚本中的下一个命令
键入exit():与CTRL + D相同
以下是一个示例脚本:
#!/usr/bin/env python
from IPython import embed
print 'hello world'
embed()
print 'I dont want to reach here if I decide to quit from the IPython terminal!'
答案 0 :(得分:1)
一个选项是从IPython会话中获取进程ID:
$ python test_embed.py
hello world
Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, May 28 2015, 17:04:42)
Type "copyright", "credits" or "license" for more information.
IPython 5.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import os
In [2]: os.kill(os.getpid(), 9)
Killed: 9
编辑:看起来发送带有Ctrl-\
的SIGQUIT也会完全终止脚本。