On Nov 19, 2007 12:21 PM, chewie54 <[EMAIL PROTECTED]> wrote: > On Nov 19, 1:07 pm, "Chris Mellon" <[EMAIL PROTECTED]> wrote: > > > On Nov 19, 2007 11:51 AM, chewie54 <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > On Nov 18, 8:39 pm, chewie54 <[EMAIL PROTECTED]> wrote: > > > > Hi All, > > > > > > I'm evaluting IPython to see if I can it use like Tcl and Tk. If I > > > > start wish8.4, I get a command line > > > > interpreter in xterm, then I can source tcl progams that draw tk > > > > graphics on a canvas in another window. > > > > > > Is there a way to embed IPython in a wxPython app to do that? > > > > When I do as shown in the example below the GUI window does not show > > > > until I exit IPython. > > > > > > Thanks in advance for any help with this, > > > > > > import wx > > > > from IPython.Shell import IPShellEmbed > > > > > > class MyFrame(wx.Frame): > > > > def __init__(self,parent=None, id=-1, title=' '): > > > > wx.Frame.__init__(self,parent,id,title,size=(200,140)) > > > > top = wx.Panel(self) > > > > sizer = wx.BoxSizer(wx.VERTICAL) > > > > lb = wx.StaticText(top,-1,'Animals(in pairs; min,pair, > > > > max,dozen)') > > > > sizer.Add(lb) > > > > > > top.SetSizer(sizer) > > > > self.Layout() > > > > > > class MyApp(wx.App): > > > > def OnInit(self): > > > > frame = MyFrame(title="wxWidgets") > > > > frame.Show(True) > > > > self.SetTopWindow(frame) > > > > return True > > > > > > def main(): > > > > ipshell = IPShellEmbed() > > > > ipshell() > > > > app = MyApp() > > > > app.MainLoop() > > > > > > if __name__ == '__main__': > > > > main() > > > > > I forgot to mention. > > > > > I did see an example of embedding IPython in a PyGTK app on > > >http://ipython.scipy.org/moin/Cookbook > > > > > It would be nice to see an example that shows how to embed > > > IPython in a wxPython or Tkinter GUI app. > > > > IPython has a custom event loop. You'll need to look at it's sources > > and figure out how to drive it externally. There's some plugins for > > IPython that may help (or may even work out of the box), they're used > > to let you run wx or gtk or other libraries that have their own event > > loop within IPython. > > > > Are you aware that wx already has a Python shell implementation? It's > > different than IPython, of course, but it has graphical inspection of > > objects which is the main reason people tend to use IPython. > > Yes, I have seen the wxPython demo and PyShell example but was > looking > to use IPython since the user can navigate directories like other > unix > shells. > > What are these plugins you mentioned? >
http://ipython.scipy.org/moin/Cookbook/InterruptingThreads I'm not sure how these work (the wiki page implies they just run the external event loop in a thread, so they're not suitable for embedding IPython in such a tool kit). I'm sure there's a way to pump IPython though (there must be, since it's embeddable in gtk) so that's where you'll want to look. -- http://mail.python.org/mailman/listinfo/python-list