[IPython-user] Closing an embedded IPython Shell.

Dennis Muhlestein djmuhlestein@gmail....
Wed Jul 29 12:31:19 CDT 2009

On Jul 29, 2009, at 11:23 AM, Brian Granger wrote:

> Whew, this is much more complicated then.  A few comments:
> * Is your GUI running in the main thread?  Most GUI toolkits I know  
> of get very grumpy if they are not run in the main thread.  This  
> alone could cause problems.

No.  It's wxPython.  wxPython can be run in any thread you want as  
long as communication with the GUI methods occur from the same thread  
that the main loop is running.  We don't use the shell to call GUI  
methods.  We use the shell to call methods on a device to tune  
performance and settings (the device is thead safe.)

> * Are you uses IPython's threaded shells to integrate ipython with  
> the GUI?  If not, can you better describe how the two are integrated.

No.  I specifically don't want -wthread because I don't want calls in  
the shell to block the GUI.  We have other threads doing heavy USB IO  
in the GUI and it needs to run without the commands in the shell  
blocking it.

Example, I specifically want to be able to do something like this in  
the shell:

while True: pass

Then I want to be able to have the GUI run without being blocked.   
When I see that my command might not be returning, ctrl-c the command  
in the shell, and have the GUI continue to run as if it didn't know  
what is going on.  I see why many people want commands in the shell  
run on the GUI thread and I know how IPython uses uses the hijacked  
GUI loops to execute the shell commands on the GUI thread but that  
doesn't suit my needs.

> * Sometime very soon (like next week) we will be merging some new  
> code into the ipython trunk that will have a much better way of  
> doing GUI integration (it doesn't require threads).  While I haven't  
> tested it with embedding, it should make these things much simpler.   
> Note:  this new stuff won't be in the upcoming 0.10 release.

There may be something that helps but really the only issue I'm having  
is when I close the app, my shell doesn't drop back to the prompt  
until I press Enter.  I don't think it's much related to the GUI  
thread situation.


More information about the IPython-user mailing list