I couldn't get a simple test case to work. I append a listing of the little test files, all in the same folder. The diagnostic statement print('after start_new_thread\n') works, but then nothing. Originally I tried importing testABA.py but was worried that the circular importing (A imports B which imports A) would be a problem, hence the test of importing a version of the test program without the import.
The failure of this test case suggests that one cannot do imports inside secondary threads started in imported modules, something I keep tripping over. But I hope you'll be able to tell me that I'm doing something wrong! Incidentally, a simple test is to execute the file ABA.py, in which case everything works. Bruce Sherwood --------------------------- testABA.py -- execute this file from ABA import * print('exec testABA') from math import sin print(sin(3.14159/6)) ---------------------------- testABA_noimport.py -- a version of testABA.py without the import of ABA print('exec testABA_noimport') from math import sin print(sin(3.14159/6)) ----------------------------- ABA.py from thread import start_new_thread from time import sleep import sys user = 'testABA_noimport' start_new_thread(lambda: __import__(user), ()) print('after start_new_thread\n') while True: sleep(1) On Sat, Jul 21, 2012 at 2:32 AM, Dieter Maurer <die...@handshake.de> wrote: > The usual approach to this situation is to invoke the user code via > a callback from the UI main loop or invoke it explicitely > after the UI system has been set up immediately before its main loop > is called. Might look somehow like this: > > main thread: > > from thread import start_new_thread > from visual import setup_gui, start_main_loop > setup_gui() # sets up the GUI subsystem > start_new_thread(lambda: __import__(<your module>), ()) > start_main_loop() -- http://mail.python.org/mailman/listinfo/python-list