[IPython-User] Putting a kernel inside a GUI (WX or Qt) application so you can run external Qt consoles against it.

neil rabinowitz neil.rabinowitz@merton.ox.ac...
Thu Aug 11 10:34:37 CDT 2011


hi pierre

i believe this was a bug that was fixed:
<https://github.com/ipython/ipython/pull/687>

are you updated to the latest commit?

neil


On Thu, Aug 11, 2011 at 4:28 PM, Pierre Raybaut <pierre.raybaut@gmail.com>wrote:

> I confirm that when starting a kernel with IPKernelApp, I always get a
> "hb" port = 0. which is a problem when trying to connect a frontend to
> it:
>
> Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit
> (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from IPython.zmq.ipkernel import IPKernelApp
> >>> kernel = IPKernelApp()
> >>> kernel.initialize(['python', '--pylab=qt'])
> [IPKernelApp] To connect another client to this kernel, use:
> [IPKernelApp] --existing --shell=54717 --iopub=56526 --stdin=53981 --hb=0
> >>>
>
> Any idea?
>
> Thx
> Pierre
>
> 2011/8/10 Pierre Raybaut <pierre.raybaut@gmail.com>:
> > Hi Fernando,
> >
> > I'm in the middle of my vacations but I heard of the v0.11 release so
> > I couldn't resist to test some things and begin to think about the
> > future of IPython integration in Spyder.
> >
> > First of all, congratulations to the IPython dev team for this
> > impressive new release. Some details (like the excellent documentation
> > or the great-looking website) show that a lot of work has been done
> > and you should be proud of the result. I'm really excited to
> > contribute to the promotion of IPython through Spyder!
> >
> > A lot of things were broken in Spyder with this new release of IPython:
> >
> http://spyder-ide.blogspot.com/2011/08/ipython-has-taken-huge-step-forward.html
> > The essential part has already been taken care of (especially on
> > non-Windows platforms, everything is almost back to normal).
> >
> > For the future, I'm thinking of a new dedicated Spyder plugin, the
> > IPython plugin, which would be based on IPython v0.11's Qt console. I
> > hope that, in time, you will be able to cite this application of
> > IPython Qt console as an example...
> > As I mentioned on my blog, the critical part should be the variable
> > explorer support -- currently, Spyder is already using a two-process
> > architecture with sockets communicating things for code introspection
> > (code completion, calltips, ...) and for the variable explorer
> > management (getting namespace contents, getting/sending variables
> > contents, and so on).
> >
> > However, being in the middle of my vacations, I won't be very
> > efficient for coding new things, at least in the next two weeks. So I
> > won't bother you with all my naive technical questions right now.
> >
> > Anyway, a Spyder user mentioned this post of yours and so I tried to
> > run the 'ipkernel_qtapp.py' on my Windows machine, and it crashes when
> > I click on the "Qt console" button. Apparently, the embedded IPython
> > kernel is started with bad parameters and I don't know why exactly
> > (the 'hb' port is 0, which is the cause of the crash when trying to
> > run a Qt Console with these parameters):
> > [IPKernelApp] To connect another client to this kernel, use:
> > [IPKernelApp] --existing --shell=57119 --iopub=61366 --stdin=55688 --hb=0
> >
> > Thanks,
> > Pierre
> >
> > 2011/8/5  <ipython-user-request@scipy.org>:
> >> Date: Fri, 5 Aug 2011 00:20:02 -0700
> >> From: Fernando Perez <fperez.net@gmail.com>
> >> Subject: [IPython-User] Putting a kernel inside a GUI (WX or Qt)
> >>        application so you can run external Qt consoles against it.
> >> To: IPython User list <ipython-user@scipy.org>
> >> Message-ID:
> >>        <
> CAHAreOrs2N8QWhw7N75HbxPrLisEYwY-egEPKajuzmYuVXSmQQ@mail.gmail.com>
> >> Content-Type: text/plain; charset=ISO-8859-1
> >>
> >> Hi all,
> >>
> >> [ forgot to CC the user list, where people who aren't on the dev list
> >> may care about this... ]
> >>
> >> we knew this was in principle possible given the new architecture, but
> >> in working with a colleague today I had to actually implement it, so
> >> I've committed these as examples (they only need 0.11 to run, so you
> >> can just copy these files if you want to play with them, or pull from
> >> master):
> >>
> >>
> https://github.com/ipython/ipython/blob/master/docs/examples/lib/ipkernel_qtapp.py
> >>
> https://github.com/ipython/ipython/blob/master/docs/examples/lib/ipkernel_wxapp.py
> >>
> >> Those two both use the same common machinery:
> >>
> >>
> https://github.com/ipython/ipython/blob/master/docs/examples/lib/internal_ipkernel.py
> >>
> >> The idea is that you can have a full IPython kernel embedded in any
> >> GUI app (in this case, shown with either WX or Qt), and the app can
> >> then fire up a Qt console (or you can attach one externally).  The GUI
> >> app is modifying variables (the Count++ button) and dumping the user
> >> namespace to the console via buttons, while the Qt console can plot
> >> variables, run code, etc, that's in the namespace dict.
> >>
> >> These examples show that it actually takes very little code, and that
> >> this extra code is fairly generic (I used the same code for both the
> >> Qt and the WX examples).  In a real application it would be structured
> >> slightly differently, but the ideas should be clear from this simple
> >> example.
> >>
> >> I hope this is useful, since this is something that I've been asked
> >> *many* times over the years.
> >>
> >> Cheers,
> >>
> >> f
> >
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/ipython-user/attachments/20110811/1e64fbad/attachment-0001.html 


More information about the IPython-User mailing list