如何从IPython(控制台)中止python脚本

时间:2016-12-12 05:53:52

标签: python interactive

我正在使用来自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!'

1 个答案:

答案 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也会完全终止脚本。