[EMAIL PROTECTED] wrote: > Hi, > > I'm trying to work out some strange (to me) behaviour that I see when > running a python script in two different ways (I've inherited some > code that needs to be maintained and integrated with another lump of > code). The sample script is: > > # Sample script, simply create a new thread and run a > # regular expression match in it. > import re > > import threading > class TestThread(threading.Thread): > > def run(self): > print('start') > try: > re.search('mmm', 'mmmm') > except Exception, e: > print e > print('finish') > > tmpThread = TestThread() > tmpThread.start() > tmpThread.join() > import time > for i in range(10): > time.sleep(0.5) > print i > > # end of sample script > > Now if I run this using: > > $ python ThreadTest.py > > then it behaves as expected, ie an output like: > > start > finish > 0 > 1 > 2 > ... > > But if I run it as follows (how the inherited code was started): > > $ python -c "import TestThread" > > then I just get: > > start > > > I know how to get around the problem but could someone with more > knowledge of how python works explain why this is the case?
You might be interested in reading http://groups.google.com/group/comp.lang.python/browse_thread/thread/01dbc25e6d1a2662/dcf55f1475dc529f Peter -- http://mail.python.org/mailman/listinfo/python-list