2011-03-28 27 views
6

IPython v0.11'e geçmeden önce (Python 2.6.1 kullanarak), örneğin this, örneğin;IPython'da katıştırılmış etkileşimli kabuk

from IPython.Shell import IPShellEmbed 
ipshell = IPShellEmbed() 
ipshell() # this call anywhere in your program will start IPython 

"embedded kabuk denilen gerçek anlamda bağımsız alt sınıf InteractiveShell içine elden geçirildi InteractiveShellEmbed. Tüm gömme mantığı gömülü alt sınıf içine temel sınıf dışına alınıp konulmuştur" (here görmek ve here). Biz

IPython.embed(exit_msg='Whatever') 
tarafından exit_msg için bir dize geçirirseniz

artık basitçe Ancak

import IPython 
IPython.embed() 

tarafından bir konsol başlatmak gerekir Anladığım kadarıyla, bu

TraitError: The 'exit_msg' trait of an InteractiveShellEmbed instance must be a string, but a value of u'' was specified.

yükseltir

Daha sonra farklı bir hata ortaya çıkıyor

Bu sorunla karşılaşan başka biri var mı? Aksi halde bu bir hata olabilir çünkü sonuçta bir geliştirici sürümüdür.

from IPython.frontend.terminal.ipapp import TerminalIPythonApp 
app = TerminalIPythonApp.instance() 
app.initialize(argv=[]) # argv=[] instructs IPython to ignore sys.argv 
app.start() 

cevap

3

github wiki üzerinde specific instructions vardır

from IPython import embed; embed() 

özyinelemeli ipython başka ipython kabuğunu (katıştırma demek ise), bunun desteklenmediği uzun bir zaman vardı, ancak bu sorun geçen yıl yandı.

9

Bu gün (3.0+) yapmanız gereken tek şey:

İlgili konular