在切换到IPython v0.11(使用Python 2.6.1)之前,可以使用例如this嵌入交互式IPython shell,例如
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell() # this call anywhere in your program will start IPython
“嵌入式shell已被重构为 InteractiveShell 的真正独立子类,名为 InteractiveShellEmbed 。所有嵌入逻辑都已从基类中取出并放入嵌入式子类“(见here和here)。
我理解它的方式你现在应该可以通过
简单地启动一个控制台import IPython
IPython.embed()
然而,这引起了
TraitError:InteractiveShellEmbed实例的'exit_msg'特征必须是字符串,但指定了u''的值。
如果我们通过
传递exit_msg
的字符串
IPython.embed(exit_msg='Whatever')
然后它引发了不同的错误
AttributeError:'InteractiveShellEmbed'对象没有属性'set_completer'
有没有人遇到过这个问题?否则这可能是一个错误,因为它毕竟是开发人员版本。
答案 0 :(得分:9)
这些天(3.0+)你需要做的就是:
from IPython import embed; embed()
如果你的意思是在IPython中(递归地)嵌入另一个IPython shell,很长一段时间不支持这个,但去年修补了这个问题。
答案 1 :(得分:3)
github wiki上有specific instructions:
from IPython.frontend.terminal.ipapp import TerminalIPythonApp
app = TerminalIPythonApp.instance()
app.initialize(argv=[]) # argv=[] instructs IPython to ignore sys.argv
app.start()