2016-12-12 3 views
0

Я использую embed() из IPython (console), чтобы взаимодействовать с моим скриптом. Всякий раз, когда я нажимаю CTRL + D, он выходит из интерактивного режима и переходит к следующему замечанию, следуя вызову embed().Как прервать скрипт python из IPython (console)

Как сделать abort полный скрипт python, избегая его перехода к дальнейшим командам после embed() из интерактивного python?

То, что я пробовал:

CTRL + C: отменяет только мою текущую команду в IPython

CTRL + D: оставляет IPython и переходит к следующей команде в моем сценарии

Typing выхода(): такой же, как 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

Вы говорите о ноутбуке iPython? Или просто консоль iPython? – user312016

+0

Я не знаю об этом. Как это проверить? – rkioji

+0

@rkioki Как вы запускаете iPython? – user312016

ответ

1

Одним из вариантов является нюк идентификатора процесса из сеанса IPython:

$ 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 

EDIT: Похоже, посылая SIGQUIT с Ctrl-\ также прекращает сценарий полностью.

+0

Это определенно работает, но мне интересно, ярлык. – rkioji

+0

'Ctrl- \' это то, что я искал! Спасибо, отлично. – rkioji

Смежные вопросы