idoda
idoda

Reputation: 6428

Using IPython console along side IPython notebook

While working on an IPython notebook, I'm increasingly finding myself wishing that the notebook would have a console attached to it, for interactive programming. I find myself adding lines to test snippets of code and then deleting them and that's the good usage. In the worse usage I'm changing the commands in the same line, evaluating the line over and over, changing entirely the purpose of the line until I get it right, and then I'm Ctrl-Zing all the way back to the original cell content.

If I could have an interactive interpreter at the bottom of the notebook, that would definitely increase my productivity. I know that a notebook has a kernel, but I wasn't able to attach a new ipython console to it. So my wonders are:

  1. Is there a more efficient way to work with the notebook?
  2. Assuming there isn't, how can I attach an ipython console to a notebook kernel?

Thanks!

Upvotes: 28

Views: 7848

Answers (2)

Matt
Matt

Reputation: 27843

Just do %qtconsole in one cell, and it will start a qtconsole attached to the same kernel. Of course your kernel need to be local.

you can of course use the long method :

In [1]: %connect_info
{
  "stdin_port": 50845, 
  "ip": "127.0.0.1", 
  "control_port": 50846, 
  "hb_port": 50847, 
  "signature_scheme": "hmac-sha256", 
  "key": "c68e7f64-f764-4417-ba3c-613a5bf99095", 
  "shell_port": 50843, 
  "transport": "tcp", 
  "iopub_port": 50844
}

Paste the above JSON into a file, and connect with:
    $> ipython <app> --existing <file>
or, if you are local, you can connect with just:
    $> ipython <app> --existing kernel-45781.json 
or even just:
    $> ipython <app> --existing 
if this is the most recent IPython session you have started.

then

 ipython qtconsole --existing kernel-45781.json

Upvotes: 41

&#211;lavur
&#211;lavur

Reputation: 420

When you start the ipython notebook in the terminal, it will output something like this:

 2015-03-26 13:05:52.772 [NotebookApp] Kernel started: 4604c4c3-523b-4373-bfdd-222eb1260156

Then start the ipython console like this:

ipython console --existing 4604c4c3

I find this easier than the other solution.

Upvotes: 12

Related Questions