Can you specify a command to run after you embed into IPython?
Question: When calling IPython.embed() is it possible to give it a command or magic
function to run after embeding happens.

I would like to run something like this

    
    
    import IPython
    IPython.embed(command='%pylab qt4')
    

My current workaround is to copy the command string to the clipboard, spawn a
background thread which sends keystrokes %paste followed by enter to the
current window. This works ok on linux, but it is very hacky and I can't get
it working as well on Windows. It seems like it should be possible to specify
this, but I've never grasped how the IPython configs are working or what
arguments to embed are used for.


Answer: The document stated that `IPython.start_ipython` reads the configuration file,
while `IPython.embed` does not. With that in mind, let's use the former:

    
    
    import IPython
    
    c = IPython.Config()
    c.InteractiveShellApp.exec_lines = [
        '%pylab qt4',
        "print 'System Ready!'",
    ]
    
    IPython.start_ipython(config=c)
    

# Update

I am not sure what you meant by _to keep the current namespace_. If you meant
local/global variables:

    
    
    IPython.start_ipython(config=c, user_ns=locals())   # Pass in local variables
    IPython.start_ipython(config=c, user_ns=globals())  # Pass in global variables
    

