I think the problem is with the python evaluation set-up code. It throws the syntax error as it needs a valid python syntax and "?" is IPython command line specific. I found a couple of functions that would send a string directly to the interpreter: `comint-redirect-send-command` and `comint-redirect-send-command-to-process`. These do the job pretty well. Edit: I've just come across the following. One can run IPython specific commands from script (or as a send string) using the following command. get_ipython().run_line_magic('pinfo2', 'object') This is equivalent to running `object??` in the IPython console. `pinfo` is equivalent to `object?`.