2009-10-06 20 views
12

IPython'u python yorumlayıcısı ile çalışmaktan çok seviyorum. Ancak, sürekli olarak kendim çıkış yapmak için exit yazarak buluyorum ve "Çıkmak için exit() yazın).ipython dan çıkış

Çıkmak için Ctrl-D yazabileceğimi biliyorum, ancak parantez olmadan exit yazabileceğim bir yol var ve IPython'u çıkmak için bir yol var mı?

Güncelleme: nosklo sayesinde bu kolayca ipy_user_conf.py ana() işlevi aşağıdaki satırı ekleyerek yapılabilir:

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

I aşağıdaki gibi buldum çözümdür aynı kas belleği nedeniyle de 'çıkış' kullanarak sorunlarınız vardı. IPython'a yeni başlayanlar için (veya daha hızlı bir yol arıyorsanız), -D'ye iki kez daha hızlı basmak daha hızlıdır. Sadece üç kez vurma ya da (linux) kabuğundan da çıkacaksın. –

cevap

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

Böyle kullanabilirsiniz.

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

Kullanımı:

In [2]: exit 
+0

Bu, IPython ile pek işe yaramıyor. Gerçek IPShell örneğinde uygun çıkış yöntemini çağıran kendi Quitter sınıfına sahiptir. Ama genel fikir doğru. –

+0

@Robert Kern: Tamam, bir "ipython" çözümü bulundu. – nosklo

3

%exit veya %Exit, onay etkin varsa ve atlamak istiyorum. Örn. %e, ipythonrc uygulamasına execute __IPYTHON__.magic_e = __IPYTHON__.magic_exit ekleyerek. Ben ipython kendim kullanmak Yüklü

, ancak bazı garip sys.exit işleyicisi var gibi gözüküyor:

>>> exit 

EDIT:

+0

Teşekkürler, ama gerçekten "çıkış" yazmayı gerçekten istiyorum. Çünkü kas hafızasında sıkışmış. –

+2

'% exit' veya'% Exit', IPython sürüm 1.1.0 altında satır sihir işlevleri değildir. Yani IPython 1.1.0 kullanarak bu cevap benim için hiç işe yaramıyor. – halloleo

+1

@halloleo Kalbim senin için 5 yıl önce cevap olarak senin için kanıyor. 'exit', son IPython sürümlerinde OOB'yi kullanır ve bu sorunun tamamı gereksizdir. –

0

En azından ipython 0.10 yılında, sen ipython .rc.confirm_exit ayarlamak gerekir = False