##// END OF EJS Templates
Backport PR #5459: Fix interact animation page jump FF...
Backport PR #5459: Fix interact animation page jump FF Firefox doesn't render images immediately as the data is available. When animating the way that we animate, this causes the output area to collapse quickly before returning to its original size. When the output area collapses, FireFox scrolls upwards in attempt to compensate for the lost vertical content (so it looks like you are on the same spot in the page, with respect to the contents below the image's prior location). The solution is to resize the image output after the `img onload` event has fired. This PR: - Releases the `clear_output` height lock after the image has been loaded (instead of immediately or using a timeout). - Removes a `setTimeout` call in the `append_output` method. - `clear_output` in zmqshell no longer sends `\r` to the stream outputs. closes #5128

File last commit:

r16113:87737521
r16229:ff1462d3
Show More
Connecting with the Qt Console.ipynb
148 lines | 4.4 KiB | text/plain | TextLexer
/ examples / Notebook / Connecting with the Qt Console.ipynb

Connecting to an existing IPython kernel using the Qt Console

The Frontend/Kernel Model

The traditional IPython (ipython) consists of a single process that combines a terminal based UI with the process that runs the users code.

While this traditional application still exists, the modern IPython consists of two processes:

  • Kernel: this is the process that runs the users code.
  • Frontend: this is the process that provides the user interface where the user types code and sees results.

IPython currently has 3 frontends:

  • Terminal Console (ipython console)
  • Qt Console (ipython qtconsole)
  • Notebook (ipython notebook)

The Kernel and Frontend communicate over a ZeroMQ/JSON based messaging protocol, which allows multiple Frontends (even of different types) to communicate with a single Kernel. This opens the door for all sorts of interesting things, such as connecting a Console or Qt Console to a Notebook's Kernel. For example, you may want to connect a Qt console to your Notebook's Kernel and use it as a help browser, calling ?? on objects in the Qt console (whose pager is more flexible than the one in the notebook).

This Notebook describes how you would connect another Frontend to a Kernel that is associated with a Notebook.

Manual connection

To connect another Frontend to a Kernel manually, you first need to find out the connection information for the Kernel using the %connect_info magic:

In [6]:
%connect_info
{
  "stdin_port": 52858, 
  "ip": "127.0.0.1", 
  "hb_port": 52859, 
  "key": "7efd45ca-d8a2-41b0-9cea-d9116d0fb883", 
  "shell_port": 52856, 
  "iopub_port": 52857
}

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-b3bac7c1-8b2c-4536-8082-8d1df24f99ac.json 
or even just:
    $> ipython <app> --existing 
if this is the most recent IPython session you have started.

You can see that this magic displays everything you need to connect to this Notebook's Kernel.

Automatic connection using a new Qt Console

You can also start a new Qt Console connected to your current Kernel by using the %qtconsole magic. This will detect the necessary connection information and start the Qt Console for you automatically.

In [1]:
a = 10
In [2]:
%qtconsole