[IPython-user] Closing an embedded IPython Shell.
Wed Jul 29 12:23:35 CDT 2009
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
* Are you uses IPython's threaded shells to integrate ipython with the GUI?
If not, can you better describe how the two are integrated.
* 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.
On Wed, Jul 29, 2009 at 10:16 AM, Dennis Muhlestein
> I have a GUI open in a dedicated thread. IPython is running in the shell.
> When I close the GUI, I want IPython to close. I call ipshell.magic_Exit()
> from the GUI thread when the GUI thread exits. This terminates the shell
> but the shell doesn't go back to the terminal prompt until I hit Enter.
> (It's not waiting for the confirm exit, it's stuck on waiting for stdin.)
> On Jul 29, 2009, at 11:01 AM, Brian Granger wrote:
>> Hmm, I am puzzled. If I save the code below to a file (embedexit.py) and
>> then do:
>> python embedexit.py
>> I get an IPython prompt and can use it interactively. I can then close it
>> by doing:
>> In : Exit
>> In : exit()
>> And the shell closes immediately. I want to understand what you are doing
>> different. Could you clarify?
>> On Tue, Jul 28, 2009 at 2:53 PM, Dennis Muhlestein <
>> firstname.lastname@example.org> wrote:
>> On Jul 27, 2009, at 10:42 AM, Brian Granger wrote:
>> I think you have 2 options:
>> 1. Modify confirm_exit in ipythonrc to be 0 (default is 1).
>> 2. Create your embedded ipython like this to override the setting without
>> changing your config file
>> from IPython.Shell import IPShellEmbed
>> from IPython.ipstruct import Struct
>> myconfig = Struct()
>> Its a no-go. The shell doesn't pop up the confirm exit anyway because the
>> magic_Exit() function I'm using doesn't call that. The issue is that the
>> shell is hung waiting for some input from stdin. It doesn't drop back to a
>> terminal unless I hit enter.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the IPython-user