Hi, Ok, now I have made some progress with calling chaco from Python prompt under Linux. What follows is work-in-progress but shows that the idea works: from parallel_exec import ParallelExec # the code of parallel_exec is given below pexec = ParallelExec() pexec("""\ import wxPython.wx from chaco.wxplt import * class MyApp(wxPython.wx.wxApp): def OnInit(self): return True def show(): MyApp().MainLoop() """) plot([1,2,4]);pexec('show()') # shows a graph of [1,2,4] # you can enter Python commands from the prompt plot([1,2,5,4]);pexec('show()') # replaces previous graph with [1,2,5,4] Note that show() must be called using pexec (that executes command in the so-called parallel thread) otherwise Python prompt hangs until a plot window is closed. A way how to open multiple plot windows must be figured out. Ideas are welcome. Pearu #-------------- parallel_exec.py ----------- # Author: Pearu Peteson <pearu@cens.ioc.ee> # Created: Oct 6, 2003 import sys import threading import Queue import traceback class ParallelExec(threading.Thread): """ Create a thread of parallel execution. """ def __init__(self,frame_level=0): self.__queue = Queue.Queue(0) self.__frame = sys._getframe(frame_level+1) threading.Thread.__init__(self) self.setDaemon(1) self.start() def __call__(self,code): self.__queue.put(code) def shutdown(self): self.__queue.put(None) def run(self): while 1: code = self.__queue.get() if code is None: break frame = self.__frame try: exec (code, frame.f_globals,frame.f_locals) except Exception: traceback.print_exc() #------------- EOF parallel_exec.py -----------