2009-10-06 7 views
12

J'aime IPython beaucoup pour travailler avec l'interpréteur python. Cependant, je me trouve continuellement en tapant exit pour quitter, et me suis demandé "Tapez exit() pour quitter."quitter ipython

Je sais que je peux taper Ctrl-D pour quitter, mais est-il possible de taper exit sans parenthèses et d'obtenir IPython pour quitter?

Mise à jour: Merci à nosklo, cela peut facilement se faire en ajoutant la ligne suivante à la fonction principale() dans votre ipy_user_conf.py:

# type exit to exit 
ip.ex("type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or ''") 
+1

I J'ai aussi eu vos problèmes en utilisant 'exit' à cause de la même mémoire musculaire. Pour tous ceux qui découvrent IPython (ou qui cherchent un moyen plus rapide), cliquer deux fois sur -D est plus rapide. Ne le touchez pas trois fois, sinon vous serez déconnecté de votre shell (linux). –

Répondre

11
>>> import sys 
>>> class Quitter(object): 
...  def __repr__(self): 
...   sys.exit() 
... 
>>> exit = Quitter() 

Vous pouvez l'utiliser comme ceci:

>>> exit 

EDIT:

Je ne me ipython utiliser, mais il semble avoir un gestionnaire de wierd sys.exit. La solution que je trouve est la suivante:

In [1]: type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or '' 

Utilisation:

In [2]: exit 
+0

Cela ne fonctionne pas tout à fait avec IPython. Il possède sa propre classe Quitter qui appelle la méthode de sortie appropriée sur l'instance IPShell réelle. Mais l'idée générale est correcte. –

+0

@Robert Kern: D'accord, trouvé une solution 'ipython'. – nosklo

3

%exit ou %Exit, si vous avez la confirmation activé et vouloir l'ignorer. Vous pouvez l'alias par ex. %e en mettant execute __IPYTHON__.magic_e = __IPYTHON__.magic_exit dans votre ipythonrc.

+0

Merci, mais je veux vraiment taper littéralement "exit". Parce qu'il est coincé dans la mémoire musculaire. –

+2

'% exit' ou'% Exit' ne sont pas des fonctions magiques de ligne sous IPython version 1.1.0. Donc, en utilisant IPython 1.1.0, cette réponse ne fonctionne pas du tout pour moi. – halloleo

+1

@halloleo Mon coeur saigne pour vous sur le compte de la réponse d'il y a 5 ans n'étant plus pertinent. 'exit' fonctionne OOB sur les versions récentes d'IPython et toute cette question est inutile. –

0

Au moins dans IPython 0,10, vous devriez être en mesure de mettre ipython .rc.confirm_exit = False

Questions connexes