2009-10-06 12 views
12

Bardzo lubię IPython do pracy z interpreter python. Jednak ciągle znajduję się wpisując exit, aby wyjść i uzyskać monit "Wpisz exit(), aby wyjść."exit z ipython

Wiem, że mogę wpisać Ctrl-D, aby wyjść, ale czy istnieje sposób, aby wpisać exit bez nawiasów i uzyskać IPython do wyjścia?

Aktualizacja: Dzięki nosklo, można to łatwo zrobić, dodając następujący wiersz do funkcji main() w ipy_user_conf.py:

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

I również masz (miał) twoje problemy używając "wyjścia" z powodu tej samej pamięci mięśniowej. Dla każdego, kto jest nowy w IPython (lub szukasz szybszego sposobu), dwukrotne trafienie w numer -D jest szybsze. Po prostu nie uderzaj go trzy razy, bo wylogujesz się również z powłoki (Linux). –

Odpowiedz

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

Można go używać tak:

>>> exit 

EDIT:

I dont używać ipython siebie, ale wydaje się mieć jakiś dziwny sys.exit obsługi. Rozwiązanie znalazłem się następująco:

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

Zastosowanie:

In [2]: exit 
+0

To nie działa z IPythonem. Ma własną klasę Quitter, która wywołuje odpowiednią metodę wyjścia w rzeczywistej instancji IPShell. Ale ogólny pomysł jest poprawny. –

+0

@Robert Kern: Okay, znalazłem rozwiązanie 'ipython'. – nosklo

3

%exit lub %Exit, jeśli masz włączony potwierdzenie i chcesz to pominąć. Możesz go nazywać np. %e umieszczając execute __IPYTHON__.magic_e = __IPYTHON__.magic_exit w swoim ipythonrc.

+0

Dzięki, ale naprawdę chcę dosłownie wpisać "exit". Ponieważ utknął w pamięci mięśniowej. –

+2

'% exit' lub'% Exit' nie ma funkcji magii linii w IPython w wersji 1.1.0. Tak więc przy użyciu IPythona 1.1.0 ta odpowiedź w ogóle nie działa. – halloleo

+1

@halloleo Moje serce krwawi dla ciebie w związku z odpowiedzią sprzed pięciu lat, która nie ma już znaczenia. 'exit' działa OOB w najnowszych wersjach IPythona i całe to pytanie jest niepotrzebne. –

0

Przynajmniej w ipython 0,10, powinieneś być w stanie ustawić ipython .rc.confirm_exit = False