ipython/ipython — pull request #1357 by scottt (2012-01-31 00:36:20+00:00)
Title: add IPython.embed_kernel() 

This is the second submission of this patch, revised to address concerns raised in:
https://github.com/ipython/ipython/pull/1351#issuecomment-3727848
1. Allow IPython.zmq import to fail since IPython does not require zmq to exist.
This disables the feature.
2. Pass the namespace of the function calling embed_kernel() down as user_ns

This patch adds IPython.embed_kernel() as a public API.
Embedding an IPython kernel in an application is useful when you want to
use IPython.embed() but don't have a terminal attached on stdin and stdout.

My use case is a modern gdb with Python API support
#!/usr/bin/gdb --python
import IPython; IPython.embed_kernel()
this way I get to use ipython to explore the GDB API without
the readline librarry in gdb and ipython fighting over the terminal settings.

A Google search revealed that other people were interetsted in this use
case as well:
http://mail.scipy.org/pipermail/ipython-dev/2011-July/007928.html