2016-12-12 4 views
0

J'utilise embed() de IPython (console) pour interagir avec mon script. Chaque fois que j'appuie sur CTRL + D, il quitte le mode interactif et passe aux prochains appels après l'appel embed().Comment abandonner un script python depuis IPython (console)

Comment puis-je annuler le script Python complet en l'évitant d'aller à d'autres commandes après embed() du python interactif?

Ce que j'ai essayé:

CTRL + C: n'annule ma commande en cours dans le IPython

CTRL + D: quitte le IPython et procède aux prochaines commandes dans mon script

sortie de frappe(): idem CTRL + D

Voici un exemple de script:

#!/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

Parlez-vous du portable iPython? Ou juste la console iPython? – user312016

+0

Je ne sais pas à ce sujet. Comment puis-je vérifier cela? – rkioji

+0

@rkioki Comment lancez-vous iPython? – user312016

Répondre

1

Une option consiste à atomiser l'ID de processus de la session 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: On dirait que l'envoi d'SIGQUIT avec Ctrl-\ également fin entièrement le script.

+0

Cela fonctionne vraiment, mais je me demande s'il est plus facile raccourci. – rkioji

+0

'Ctrl- \' est ce que je cherchais! Merci parfait. – rkioji