我可以让 ipython 退出调用代码吗?
Can I make ipython exit from the calling code?
我有一些这样的代码:
form IPython import embed
for item in my_item_list:
embed()
如果我再运行这个程序用
python my_example_program.py
在循环的第一次迭代中,我被放入 ipython shell 并且可以检查 item
和我想要的环境。
退出 ipython 循环恢复,然后我可以检查下一个 item
和您期望的环境。
有没有办法让我从 ipython 中退出此代码(以便我返回到 shell 提示符)。以任何方式打开另一个 shell 并终止进程?
IPython 中有一个 %kill_embedded
命令。
它不会让您直接返回 shell 提示符,但会跳过其他嵌入实例。
from IPython import embed
for item in range(5):
print 'embedding', item
embed()
这是输出:
$ python my_example_program.py
embedding 0
Python 2.7.9 (default, Dec 13 2014, 22:30:33)
Type "copyright", "credits" or "license" for more information.
IPython 1.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]: print item
0
In [2]: ^D
embedding 1
Python 2.7.9 (default, Dec 13 2014, 22:30:33)
Type "copyright", "credits" or "license" for more information.
IPython 1.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 [2]: %kill_embedded
Are you sure you want to kill this embedded instance (y/n)? [y/N] y
This embedded IPython will not reactivate anymore once you exit.
In [3]: print item
1
In [4]:
embedding 2
embedding 3
embedding 4
$
UPD (06.03.2016): 似乎 %kill_embedded
功能在 IPython 4.0 中被破坏了;您可以使用 %exit_raise
这将引发异常,并且 return 返回到 shell.
我有一些这样的代码:
form IPython import embed
for item in my_item_list:
embed()
如果我再运行这个程序用
python my_example_program.py
在循环的第一次迭代中,我被放入 ipython shell 并且可以检查 item
和我想要的环境。
退出 ipython 循环恢复,然后我可以检查下一个 item
和您期望的环境。
有没有办法让我从 ipython 中退出此代码(以便我返回到 shell 提示符)。以任何方式打开另一个 shell 并终止进程?
IPython 中有一个 %kill_embedded
命令。
它不会让您直接返回 shell 提示符,但会跳过其他嵌入实例。
from IPython import embed
for item in range(5):
print 'embedding', item
embed()
这是输出:
$ python my_example_program.py
embedding 0
Python 2.7.9 (default, Dec 13 2014, 22:30:33)
Type "copyright", "credits" or "license" for more information.
IPython 1.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]: print item
0
In [2]: ^D
embedding 1
Python 2.7.9 (default, Dec 13 2014, 22:30:33)
Type "copyright", "credits" or "license" for more information.
IPython 1.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 [2]: %kill_embedded
Are you sure you want to kill this embedded instance (y/n)? [y/N] y
This embedded IPython will not reactivate anymore once you exit.
In [3]: print item
1
In [4]:
embedding 2
embedding 3
embedding 4
$
UPD (06.03.2016): 似乎 %kill_embedded
功能在 IPython 4.0 中被破坏了;您可以使用 %exit_raise
这将引发异常,并且 return 返回到 shell.