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

Pierre Raybaut pierre.raybaut@gmail....
Thu Aug 11 13:09:35 CDT 2011


Hi Neil,

Thanks of your answer.
I was just trying the stable v0.11 release.

And it's working from the latest git commit, indeed.
thx!
-Pierre

2011/8/11 neil rabinowitz <neil.rabinowitz@merton.ox.ac.uk>:
> 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
>
>


More information about the IPython-User mailing list